我有我的 array=[{id:"1"}, {id:"2"}, {id:"3"}]
并希望将其转换为对象:{"1":true, "2", true, "3":true};
所以我做了以下事情:
async.reduce(myArray, {}, function (memo, item, callback) {
memo[item.id] = true;
callback(null, memo);
}, function (err, myObj) {
console.log("converted object", myObj);
}
它可以完成工作,但是我不确定这在性能方面是否有意义还是毫无意义? Here他们建议使用mapreduce,但我仍然很困惑如何使用map和reduce来提高性能;如有任何帮助,我们将不胜感激。
谢谢
最佳答案
就您而言,您的 reduce
函数中没有任何异步内容,因此您最好使用常规的 Array.prototype.reduce
:
var array = [{id:"1"}, {id:"2"}, {id:"3"}];
var newArray = array.reduce(function(cur, val) {
cur[val.id] = true;
return cur;
}, {});
console.log(newArray);
// => { '1': true, '2': true, '3': true }
关于javascript - Node 中的 Map-Reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29479922/