使用 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进行检查:
使用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]]);
}