How to iterate over a JavaScript object?

后端 未结 18 1994
失恋的感觉
失恋的感觉 2020-11-21 22:52

I have an object in JavaScript:

{
    abc: \'...\',
    bca: \'...\',
    zzz: \'...\',
    xxx: \'...\',
    ccc: \'...\',
    // ...
}

I

18条回答
  •  深忆病人
    2020-11-21 23:13

    The only reliable way to do this would be to save your object data to 2 arrays, one of keys, and one for the data:

    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.
        }
    }
    

    You can then iterate over the arrays like you normally would:

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

    I am not using Object.keys(obj), because that's IE 9+.

提交回复
热议问题