javascript - 如何将id,值数组列表转换为[id] :[value] type object

标签 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);

最佳答案

取决于您对“最佳”的定义。但是当我尝试你的解决方案时,reduce() 解决方案和 jsperf 中的简单 for 循环旧的 for 循环是最快的:)

enter image description here

var list = [{id:3, value:"value1"}, {id:4, value:"value2"}];
var result = {};
for (var i = 0; i < list.length; i++){
  result[list[i].id] = list[i].value;
}
console.log(result);

关于javascript - 如何将id,值数组列表转换为[id] :[value] type object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47133075/

相关文章:

Javascript:对于各种浏览器中的 HTML5 API/ECMAScript5/ECMAScript6,是否有等同于 caniuse.com 的网站?

javascript - JavaScript 代码的本地副本在在线演示时不起作用

javascript - 使用 async/await Promise 在 "parallel"中运行 for 循环

Javascript:类型错误混淆

javascript - 删除除第一个之外的所有子节点

javascript - 使用 jQuery.map() 函数创建自定义对象数组

javascript - 为什么如果我将对象传递给函数,我不需要在 javascript 中声明函数参数

javascript - 使用 `this` 与 Object.create(prototype)

javascript - 我不明白为什么我的代码没有获取输入框的值并创建一个新对象

cocoa - 需要帮助在 cocoa 中实现进程间通信