curSelectData.forEach(e => {
curData.forEach(v => {
v.cityList.forEach(s => {
if (Number(s.id) === Number(e.id)) {
s.bid_price = e.bid_price;
}
})
})
})
curSelectData.forEach(e => {
curData.forEach(v => {
v.cityList.forEach(s => {
if (Number(s.id) === Number(e.id)) {
s.bid_price = e.bid_price;
}
})
})
})
想用 curSelectData
中的数据来更新所有对应的 city
的数据对吗
可以先建 id
到更新数据的映射,再遍历所有 city
,通过 city.id
获取到更新数据直接赋值即可。假如没有 city.id
对应的更新数据,则 updated[city.id]
为 undefined
,此时 Object.assign
不会有任何效果,无需额外判断
const updated = Object.fromEntries(
curSelectData.map(({ id, bid_price }) => [id, { bid_price }])
)
curData.forEach(({ cityList }) => {
cityList.forEach(city => Object.assign(city, updated[city.id]))
})
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
外层的
forEach
不必要,只是为了判断是否交集可以做一个映射