[英]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.