[英]How to replace the object with the new object using javascript or lodash?
我有如下数据结构,
const data = {
getSomething: {
id: '1',
items: [
{
id: '1',
orders: [
{
id: '1',
name: 'one1',
}
],
subItems: [
{ id: '1', name: 'subitem1' },
{ id: '2', name: 'subitem2' },
],
},
{
id: '2',
orders: [
{
id: '2',
name: 'two1',
}
],
subItems: [
{ id: '2', name: 'subitem1' },
{ id: '3', name: 'subitem2' },
],
}
],
}
}
现在我有另一个数据,如下所示,
const item1 = {
id: '2',
orders: [
{
id: '3',
name: 'one1',
}
],
}
我必须用上面的 item1 替换数据中 id 1 的项目。 我怎样才能使用 lodash 做到这一点。 或任何其他我可以轻松完成的方式。
有人可以帮我解决这个问题吗? 谢谢。
const data = { getSomething: { id: '1', items: [{ id: '1', orders: [{ id: '1', name: 'one1', }], subItems: [{ id: '1', name: 'subitem1' }, { id: '2', name: 'subitem2' }, ], }, { id: '2', orders: [{ id: '2', name: 'two1', }], subItems: [{ id: '2', name: 'subitem1' }, { id: '3', name: 'subitem2' }, ], } ], } } const item1 = { id: '2', orders: [{ id: '3', name: 'one1', }], } Object.assign(data.getSomething.items.find(item => item.id === item1.id),item1); console.log(data);
这将使用 item1 覆盖数据中 id 为 1 的项目:
const data = {
getSomething: {
id: '1',
items: [
{
id: '1',
orders: [
{
id: '1',
name: 'one1',
}
],
subItems: [
{ id: '1', name: 'subitem1' },
{ id: '2', name: 'subitem2' },
],
},
{
id: '2',
orders: [
{
id: '2',
name: 'two1',
}
],
subItems: [
{ id: '2', name: 'subitem1' },
{ id: '3', name: 'subitem2' },
],
}
],
}
}
const item1 = {
id: '2',
orders: [
{
id: '3',
name: 'one1',
}
],
}
const oldItem = data.getSomething.items.find(item => item.id == 1);
Object.assign(oldItem, item1);
console.log(data);
你看起来像这样吗?
const data = { getSomething: { id: '1', items: [ { id: '1', orders: [ { id: '1', name: 'one1', } ], subItems: [ { id: '1', name: 'subitem1' }, { id: '2', name: 'subitem2' }, ], }, { id: '2', orders: [ { id: '2', name: 'two1', } ], subItems: [ { id: '2', name: 'subitem1' }, { id: '3', name: 'subitem2' }, ], } ], } } const item1 = { id: '2', orders: [ { id: '3', name: 'one1.......', } ], subItems: [ { id: '2', name: 'subitem1....' }, { id: '3', name: 'subitem2....' }, ], } let result = data.getSomething.items.map(item=> item.id===item1.id ? ({...item1}): item); console.log('-----Original----', data.getSomething.items); console.log('-----Updated-----', result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.