你如何预习字典?

时间:2016-07-14 16:53:18

标签: javascript loops dictionary foreach

JS6为数组和地图添加了forEach功能。但是,似乎忘记了为词典做这件事。我想要一本字典。我错过了什么?我该怎么办?

3 个答案:

答案 0 :(得分:3)

以下是对此的讨论:ES6 iteration over object values

使用辅助函数执行此操作的可能性之一:

function* entries(obj) {
  for (let key of Object.keys(obj)) {
    yield [key, obj[key]];
  }  
}

for (let [key, value] of entries(myObj)) {
  // do something with key|value
}

对于ES7 Object.values / Object.entriesObject.enumerableEntries提议。

答案 1 :(得分:1)

zzzzBov gave最佳答案

function each(obj, fn) { Object.keys(obj).forEach(key => fn(key, obj[key])); }

它也适合map目的

Object.prototype.map = function(f) { return Object.keys(this).map(key => f(this[key], key)); }

答案 2 :(得分:0)

EcmaScript 2017引入了Object.entriesDocumentation

const obj = {
    a: 'somestring',
    b: 42
};

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

输出:

  

a:somestring
  b:42