为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用数组中嵌套的另一个对象的数据更新对象?

如何使用数组中嵌套的另一个对象的数据更新对象?

一只斗牛犬 2023-11-02 17:07:38
所以我需要编写一个函数,用另一个对象更新我的对象(但该对象位于数组内),例如:  const mazda = { model: 5, seria: 22, wheels: 4,};我想添加来自以下位置的数据:const newItems= [{ LCDscreen: true },{ wheels: 5 },{ model: 6},{ weight: 500},{ mirrors: 4},];但因此第一个对象的序列没有改变。结果应该是{ seria: 22 ,model: 6, wheels: 4, LCDscreen: true, weight: 500 , mirrors: 4};最好的方法是什么?
查看完整描述

3 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您可以简单地循环遍历数组并将数组对象分布在 mazda 对象内。这是使用for循环之后最快的方法。


let mazda = { model: 5, seria: 22, wheels: 4,};


const newItems= [{ LCDscreen: true },{ wheels: 5 },{ model: 6},{ weight: 500},{ mirrors: 4}]


newItems.forEach(item => {

      mazda = {...mazda, ...item};

});


console.log(mazda)


查看完整回答
反对 回复 2023-11-02
?
holdtom

TA贡献1805条经验 获得超10个赞

这可以用一行完成:

newItems.reduce((acc, patch) => Object.assign(acc, patch), mazda)

这会迭代newItems列表中的所有对象并将它们mazda一个接一个地合并。

如果您不想mazda修改对象而是获取新对象,请使用空对象 ( {}) 作为第一个参数Object.assign

const newMazda = newItems.reduce((acc, patch) => Object.assign({}, acc, patch), mazda)


查看完整回答
反对 回复 2023-11-02
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

我认为这就是你想要的。获取 中的每一项newList并将其作为新属性添加到mazda对象中。


const mazda = { model: 5, seria: 22, wheels: 4,};


const newItems= [{ LCDscreen: true },{ wheels: 5 },{ model: 6},{ weight: 500},{ mirrors: 4}]


const result = newItems.reduce( (acc,item) => ({...acc,...item}),mazda);


console.log(result)


查看完整回答
反对 回复 2023-11-02
  • 3 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信