如何遍历JavaScript对象?

我在JavaScript中有一个对象:

{

abc: '...',

bca: '...',

zzz: '...',

xxx: '...',

ccc: '...',

// ...

}

我想使用for循环来获取其属性。而且我想对其进行迭代(并非一次完成所有对象属性)。

通过一个简单的数组,我可以使用标准for循环来做到这一点:

for (i = 0; i < 100; i++) { ... } // first part

for (i = 100; i < 300; i++) { ... } // second

for (i = 300; i < arr.length; i++) { ... } // last

但是如何处理对象呢?

回答:

对于大多数对象,请使用for .. in

for (let key in yourobject) {

console.log(key, yourobject[key]);

}

使用ES6,如果同时需要键和值,请执行

for (let [key, value] of Object.entries(yourobject)) {

console.log(key, value);

}

为了避免记录继承的属性,请使用hasOwnProperty进行检查:

for (let key in yourobject) {

if (yourobject.hasOwnProperty(key)) {

console.log(key, yourobject[key]);

}

}

hasOwnProperty 如果您使用的是简单对象(例如,您自己创建的对象),则无需在迭代键时进行检查{}

该MDN文档更一般地说明了如何处理对象及其属性。

如果要“分块”执行,最好的方法是将键提取到数组中。由于不能保证顺序,这是正确的方法。在现代浏览器中,您可以使用

let keys = Object.keys(yourobject);

为了更加兼容,您最好这样做:

 let keys = [];

for (let key in yourobject) {

if (yourobject.hasOwnProperty(key)) keys.push(key);

}

然后,您可以按索引访问属性yourobject[keys[i]]

for (let i=300; i < keys.length && i < 600; i++) { 

console.log(keys[i], yourobject[keys[i]]);

}

以上是 如何遍历JavaScript对象? 的全部内容, 来源链接: utcz.com/qa/399995.html

回到顶部