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

但是如何对对象进行处理呢?


当前回答

const o = {
  name: "Max",
  location: "London"
};

for (const [key, value] of Object.entries(o)) {
  console.log(`${key}: ${value}`);
}

试着在网上

其他回答

唯一可靠的方法是将对象数据保存到2个数组中,一个是键数组,另一个是数据数组:

var keys = [];
var data = [];
for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        keys.push(key);
        data.push(obj[key]); // Not necessary, but cleaner, in my opinion. See the example below.
    }
}

然后你可以迭代数组,就像你通常会:

for(var i = 0; i < 100; i++){
    console.log(keys[i], data[i]);
    //or
    console.log(keys[i], obj[keys[i]]); // harder to read, I think.
}
for(var i = 100; i < 300; i++){
    console.log(keys[i], data[i]);
}

我没有使用Object.keys(obj),因为那是IE 9+。

如果在迭代时需要键和值,可以使用for…使用Object.entries循环。

const myObj = {a: 1, b: 2}

for (let [key, value] of Object.entries(myObj)) {
    console.log(`key=${key} value=${value}`)
}

// output: 
// key=a value=1
// key=b value=2

这是一个手工制作的解决方案:

function iterationForObject() {
    let base = 0,
        Keys= Object.keys(this);
    return {
        next: () => {
            return {
                value: {
                    "key": Keys[base],
                    "value": this[Keys[base]]
                },
                done: !(base++ < Keys.length)
            };
        }
    };
}
Object.prototype[Symbol.iterator] = iterationForObject;

然后你可以循环任何对象:

for ( let keyAndValuePair of (Object Here) ) {
    console.log(`${keyAndValuePair.key} => ${keyAndValuePair.value}`);
}

如果你有一个简单的对象,你可以使用下面的代码迭代它:

let myObj = { 美国广播公司(abc):“…” bca:“……” 鼾声大作:“……” xxx:“……” ccc:“……” / /…… }; let objKeys = Object.keys(myObj); //现在我们可以使用objKeys遍历myObj for (item of objKeys) { //这将打印密钥 console.log(关键:,项); //这将打印出值 console.log(价值:,myObj[项目]); }

如果你有一个嵌套对象,你可以使用下面的代码遍历它:

设b = { 一:{ 答:1, b: 2 c: 3 }, 二:{ 4, b: 5 c: 6 }, 三:{ 7, b: 8 c: 9 } }; let myKeys = Object.keys(b); for (item of myKeys) { //打印密钥 console.log(“关键”,项目) //打印值(这将是另一个对象) console.log(“价值”,b[项目]) //打印嵌套值 console.log('嵌套值',b[item]['a']) }

如果你有一个对象数组,你可以使用下面的代码遍历它:

令c = [ { 答:1, b: 2 }, { 答:3, b: 4 } ]; 对于(c项){ //单独打印整个对象 console.log(“对象”,项目); //打印对象内部的值 console.log(“价值”,项目[a]); }

->如果我们遍历一个JavaScript对象使用并找到数组的键 对象

Object.keys(Array).forEach(key => {

 console.log('key',key)

})