如何将对象数组转换为具有键值对的对象

新手上路,请多包涵

我想在 javascript 中将对象数组转换为具有键值对的对象。

 var arr=[{"name1":"value1"},{"name2":"value2"},...}];

我怎样才能把它转换成一个对象,比如

{"name1":"value1","name2":"value2",...}

我希望大多数浏览器都支持它。

原文由 HiddenMarkow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 564
2 个回答

您可以使用 Object.assign扩展语法 ... 用给定的对象数组创建单个对象。

 var array = [{ name1: "value1" }, { name2: "value2" }],
    object = Object.assign({}, ...array);

console.log(object);

原文由 Nina Scholz 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用现代 JS(YMMV):

  1. 将每个对象拆分为条目
  2. 将所有条目聚合到一个对象中
 const arr = [{name1:"value1"}, {name2:"value2"}, {a:1,b:2}];
const obj = Object.fromEntries(arr.flatMap(Object.entries));
console.log(obj);

原文由 customcommander 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题