gpt4 book ai didi

javascript - 如何遍历 JavaScript 对象?

转载 作者:IT老高 更新时间:2023-10-28 11:04:07 24 4
gpt4 key购买 nike

我在 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

但是如何处理对象呢?

最佳答案

用于迭代 Arrays, Strings, or Objects 的键, 使用 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 )。

This MDN documentation更一般地解释如何处理对象及其属性。

如果你想“分 block ”做,最好是提取数组中的键。由于无法保证订单,因此这是正确的方法。在现代浏览器中,您可以使用

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 - 如何遍历 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14379274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com