如何将id,value数组列表转换为[id]:[value]类型对象

时间:2017-11-06 08:58:08

标签: javascript object

如何转换对象列表,如:

[{id:3, value:"value1"}, {id:4, value:"value2"}]

 {3:"value1", 4:"value2"}

我不确定这是最佳解决方案。但是工作。



var list = [{id:3, value:"value1"}, {id:4, value:"value2"}]
var result = Object.assign({}, ...list.map((obj, index)=>{
  return {[obj.id]:obj.value};
}))
console.log(result);




3 个答案:

答案 0 :(得分:1)

您可以将Object.assignspread syntax ...Array#map用于computed property names的对象。



var array = [{ id: 3, value: "value1" }, { id: 4, value: "value2" }],
    result = Object.assign(...array.map(({ id, value }) => ({ [id]: value })));
    
console.log(result);




答案 1 :(得分:1)

取决于您对" best"的定义。但是,当我尝试使用reduce()解决方案和jsperf循环enter image description here时,好的旧for循环是最快的:)

DateTimeFormatter



for




答案 2 :(得分:0)

减少将解决您的问题:

var list = [{id: "foo", value: "bar"}, {"id":"baz", value:"bad"}];
var result = list.reduce((obj, item) => {
    obj[item.id] = item.value;
    return obj
}, {});
console.log(result);