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

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


当前回答

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

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

 console.log('key',key)

})

其他回答

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

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]); }

我最终想出了一个方便的实用工具函数,具有统一的接口来迭代对象,字符串,数组,TypedArrays, Maps, Sets,(任何Iterables)。

const iterate = require('@a-z/iterate-it');
const obj = { a: 1, b: 2, c: 3 };

iterate(obj, (value, key) => console.log(key, value)); 
// a 1
// b 2
// c 3

https://github.com/alrik/iterate-javascript

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

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

试着在网上

<script type="text/javascript">
// method 1
var images = {};
images['name'] = {};
images['family'] = {};
images[1] = {};
images['name'][5] = "Mehdi";
images['family'][8] = "Mohammadpour";
images['family']['ok'] = 123456;
images[1][22] = 2602;
images[1][22] = 2602;
images[1][22] = 2602;
images[1][22] = 2602;
images[1][23] = 2602;

for (const [key1, value1] of Object.entries(images)){
    for (const [key2, value2] of Object.entries(value1)){
        console.log(`${key1} => ${key2}: ${value2}`);
    }
}


console.log("=============================");

// method 2
var arr = [];
for(var x = 0; x < 5; x++){
     arr[x] = [];    
     for(var y = 0; y < 5; y++){ 
         arr[x][y] = x*y;    
     }    
 }

for(var i = 0; i < arr.length; i++) {
    var cube = arr[i];
    for(var j = 0; j < cube.length; j++) {
        console.log("cube[" + i + "][" + j + "] = " + cube[j]);
    }
}

</script>

在参数中定义object,避免选择器和下标

有许多语法选择,但这个在闭包的参数中定义了前面的对象,从而消除了迭代器中选择器或下标的需要。K是键,v是值,I是索引。

const obj = {
    kiwi: true,
    mango: false,
    pineapple: 500
};

Object.entries(obj).forEach(([k, v], i) => {
    console.log(k, v, i);
});

// kiwi true 0
// mango false 1
// pineapple 500 2