Object.keys()的用法等价于for循环?

时间:2017-06-02 13:29:53

标签: javascript

如何使用Object.key()进行下面的for循环?

for ( const obj in selectedObject) {
     objAdmin[ obj ] = this.adminData.find( function dataInEventType( eT ) {
            return eT[ 'Event Type' ] === newSelectedFilters[ obj ].LabelText;
        } );
     }

3 个答案:

答案 0 :(得分:1)

尝试使用此forEach来迭代数组

Object.keys(selectedObject).forEach(function(a){
  objAdmin[ a ] = this.adminData.find( function dataInEventType( eT ) {
     return eT[ 'Event Type' ] === newSelectedFilters[ a ].LabelText;

})

答案 1 :(得分:1)

Object.keys()返回对象中可枚举键的列表,它与

几乎相同
var keys = [];
for(var prop in obj) {
    if(obj.hasOwnProperty(prop)) keys.push(prop);
}
return keys;

这意味着您可以遍历Object.keys()

返回的列表
for(var i = 0; i < keys.length; i++) {
    // Do stuff with keys[i]
}

重要的是要知道在ES5中定义Object.keys()并且像IE9这样的传统浏览器不支持此方法,但如果您想支持旧浏览器,我上面提供的功能可以用作替代品。

值得注意的是forforEach之间存在差异...我倾向于使用for能够break离开循环需要的。

答案 2 :(得分:0)

Object.keys(selectedObject).forEach(function(obj){
objAdmin[ obj ] = this.adminData.find( function dataInEventType( eT ) {
            return eT[ 'Event Type' ] === newSelectedFilters[ obj ].LabelText;
        } );
}