JS6为数组和地图添加了forEach功能。但是,似乎忘记了为词典做这件事。我想要一本字典。我错过了什么?我该怎么办?
答案 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.entries和Object.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.entries
。 Documentation
const obj = {
a: 'somestring',
b: 42
};
for (let [key, value] of Object.entries(obj)) {
console.log(`${key}: ${value}`);
}
输出:
a:somestring
b:42