我有一个数组
[{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/