How to iterate over a JavaScript object?

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

I have an object in JavaScript:

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

I

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

    With the new ES6/ES2015 features, you don't have to use an object anymore to iterate over a hash. You can use a Map. Javascript Maps keep keys in insertion order, meaning you can iterate over them without having to check the hasOwnProperty, which was always really a hack.

    Iterate over a map:

    var myMap = new Map();
    myMap.set(0, "zero");
    myMap.set(1, "one");
    for (var [key, value] of myMap) {
      console.log(key + " = " + value);
    }
    // Will show 2 logs; first with "0 = zero" and second with "1 = one"
    
    for (var key of myMap.keys()) {
      console.log(key);
    }
    // Will show 2 logs; first with "0" and second with "1"
    
    for (var value of myMap.values()) {
      console.log(value);
    }
    // Will show 2 logs; first with "zero" and second with "one"
    
    for (var [key, value] of myMap.entries()) {
      console.log(key + " = " + value);
    }
    // Will show 2 logs; first with "0 = zero" and second with "1 = one"
    

    or use forEach:

    myMap.forEach(function(value, key) {
      console.log(key + " = " + value);
    }, myMap)
    // Will show 2 logs; first with "0 = zero" and second with "1 = one"
    

提交回复
热议问题