Object.keys()
速记:Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。
练习小demo
var arr=['a','b','c'];
console.log(Object.keys(arr));
var obj={0:'a',1:'b',2:'c'};
console.log(Object.keys(obj));
var anObj={100:'a',2:'b',7:'c'};
console.log(Object.keys(anObj));
var myObj=Object.create({},{
getFoo:{
value:function(){return this.foo}
}
});
myObj.foo=1;
console.log(Object.keys(myObj));
要在原生不支持的旧环境中添加兼容的Object.keys,请复制以下代码段
if(!Object.keys){
Object.keys=(function(){
var hasOwnProperty=Object.prototype.hasOwnProperty,
hasDontEnumBug=!({toString:null}).propertyIsEnumerable(''),
dontEnums=[
'toString',
'toLocaleString',
'valueOf',
'hasOwnProperty',
'isPropertyIsEnumerable',
'propertyIsEnumerable',
'constructor'
],
dontEnumsLength=dontEnums.length;
return function(obj){
if(typeof obj!=='object'&&typeof obj!=='function'||obj==null)throw new TypeError('Object.keys called on non-object');
var result=[];
for(var prop in obj){
if(hasOwnProperty.call(obj.prop)) result.push(prop);
}
if(hasDontEnumBug){
for(var i=0;i<dontEnumsLength;i++){
if(hasOwnProperty.call(obj,dontEnums[i]))result.push(dontEnums[i]);
}
}
return result;
}
})()
}
本文看自:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
作者:jser_dimple
-------------------------------------------
个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
微信
支付宝