javascript - 如何在不使用 Object.assign 的情况下使用 javascript 将数组转换为对象

标签 javascript arrays

我有一个数组

[{0:{title:"test1"}},{1:{message1:"message1"}},{2:{message2:"message2"}}]

我想获取以下格式的对象

{title:"test1",message1:"message1",message2:"message2"}

我正在尝试使用下面的代码,但没有成功

var rv = {};
for (var i = 0; i < messageArray.length; ++i)
if (messageArray[i] !== undefined) rv[i] = messageArray[i];`

结果是我

{0: {title:"test1"}, 1: {message1:"message1"},2: {message2:"message2"}}

最佳答案

您可以使用 reduce 来汇总数据,并使用 Object.assign() 将新属性合并到一个对象中。

let arr = [{0:{title:"test1"}},{1:{message1:"message1"}},{2:{message2:"message2"}}];

let result = arr.reduce((c, v, i) => Object.assign(c, v[i]),{});

console.log(result);

如果对象上的键不按顺序,您可以使用 Object.values() 获取值。

let arr = [{0:{title:"test1"}},{1:{message1:"message1"}},{2:{message2:"message2"}}];

let result = arr.reduce((c, v, i) => Object.assign(c, Object.values(v)[0]), {});

console.log(result);

关于javascript - 如何在不使用 Object.assign 的情况下使用 javascript 将数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49984918/

相关文章:

arrays - 使用字节 slice (或数组)时优化 go (golang) 代码的一些技巧是什么?

javascript - 如何使用 Javascript chop/切片/trim 字符串中的最后一个字符?

javascript - 分离然后追加 Div

javascript - 站点使网络浏览器突然停止并在某些 IE 浏览器中关闭

javascript - style.background - 适合屏幕(尤其是在移动设备上)- JS、HTML、CSS

arrays - 如何在 swift 3 中比较日期数组(字符串)与单个日期

javascript - 通过 Jquery 动态更改 css backgroundPosition left AND top

java - 我正在尝试在 Java 中迭代两个数组,同时还检查值是否相等

arrays - 冒泡排序的外循环N值

javascript - 使用 Prototype JS 迭代 json 对象数组并根据键对其进行排序