对于大多数对象,请使用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]]);
}