守候你守候我
您可以创建一个组合嵌套对象的函数。然后使用map()和find()创建对象的组合数组。var products = [ { Id: 1, Name: 'Product1', Attributes: { Storage: 'Normal', Size: 'Small' } }, { Id: 2, Name: 'Product2', Attributes: { Storage: 'Normal', Size: 'Small' } }];var newData = [ { Id: 2, Name: 'French Fries' }, { Id: 1, Attributes: { Size: 'Medium' } }];const haveNested = obj => Object.values(obj).some(x => typeof x === "object");function combine(obj1,obj2){ if(!haveNested(obj1)) return ({...obj1,...obj2}) let res = obj1 for(let key in obj1){ if(typeof obj1[key] === "object"){ res[key] = combine(obj1[key],obj2[key]); } else if(obj2[key]) res[key] = obj2[key] } return res;}const result = products.map(x => { let temp = newData.find(a => a.Id === x.Id); return temp ? combine(x,temp) : x;})console.log(result)