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));

1037363-20190321112303638-393870630.png
要在原生不支持的旧环境中添加兼容的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

转载于:https://www.cnblogs.com/smart-girl/p/10570388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值