在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ js數(shù)組對(duì)象的覆蓋

js數(shù)組對(duì)象的覆蓋

var o1 = [{value: "doomfist",checked: false},
{value: "genji",checked: false},
{value: "mccree", checked: false}];

var o2 = [{value: "mccree", checked: true},{value: "genji",checked: true}];

有沒(méi)有現(xiàn)成的方法比如es6,lodash中的方法,將o2對(duì)象覆蓋到o1,最終的結(jié)果是

[{value: "doomfist",checked: false},
{value: "genji",checked: true},
{value: "mccree", checked: true}]

使用Object.assign(o1,o2)的結(jié)果如下:

[{value: "mccree", checked: true}
{value: "genji", checked: true}
{value: "mccree", checked: false}]

沒(méi)有一步到位的,就用這了

const result = o1.map(item1 => {
  return Object.assign(item1, o2.find(item2 => {
    return item2 && item1.value === item2.value
  }))
})
回答
編輯回答
眼雜

sugarjs先add兩個(gè)數(shù)組,然后filter掉value是mccree并且checked是false的,一步到位的還真沒(méi)想起來(lái)

2017年9月29日 09:30
編輯回答
雅痞

沒(méi)有一步到位的,就用這了

const result = o1.map(item1 => {
  return Object.assign(item1, o2.find(item2 => {
    return item2 && item1.value === item2.value
  }))
})
2018年4月22日 15:43
編輯回答
萌吟
Object.assign(o1,o2)

你想要{value:a,check:b}比較,讓value的值不同的,不變,只更新check的值,是這個(gè)意思嗎。

你的a,b本質(zhì)上都是value,而現(xiàn)成的方法都是比較對(duì)象中的key來(lái)做替換。
2017年6月28日 12:46