Tho*_*son 8 javascript functional-programming javascript-objects
我试图找出是否有办法将此代码重写为单个对象创建:
my_array = [
{key: 1, value: "foo"},
{key: 2, value: "bar"}
];
let my_obj = {};
my_array.forEach((elem) => {
my_obj[elem.key] = elem.value;
});
Run Code Online (Sandbox Code Playgroud)
我想做的是:
my_array = [
{key: 1, value: "foo"},
{key: 2, value: "bar"},
];
const my_obj = ...?
Run Code Online (Sandbox Code Playgroud)
有没有办法进行一次转换,相当于forEach通话?
你可以使用Array.prototype.reduce()以下方法实现:
var my_array = [{key: 1, value:"foo"}, {key: 2, value:"bar"}];
var my_object = my_array.reduce(function(prev, curr) {
prev[curr.key] = curr.value;
return prev;
}, {});
console.log(my_object); // {"1": "foo", "2": "bar"}Run Code Online (Sandbox Code Playgroud)
或者,使用ES6语法:
const my_object = my_array.reduce((prev, curr) => {
prev[curr.key] = curr.value;
return prev;
}, {});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4101 次 |
| 最近记录: |