你最后修改的对象其实和res.Content没什么关系。relation = { ...relation, count: counts.count }这句相当于重新申请了一段内存,赋值给relation这个变量,修改的并不是res.Content内的relation.可改为relation.count = counts.count function transform(list1, list2) { let countInfo = {} // { GraphTypeName: { Id: count } } list2.forEach(item => { countInfo[item.GraphTypeName] = countInfo[item.GraphTypeName] || {} let rList = item.RelationTypeProjectList rList.forEach(r => { countInfo[item.GraphTypeName][r.Id] = r.count }) }) let changeList = [] list1.forEach(item => { // 这里保存的是引用 changeList.push(...item.ChildGraphicTypeList) }) changeList.forEach(item => { let name = item.GraphTypeName let rList = item.RelationTypeProjectList rList.forEach(r => { r.count = countInfo[name][r.Id] }) }) } 调用: let list1 = [ { note:'关系', code:'345', ChildGraphicTypeList:[{ id:123, GraphTypeName:'第一个', RelationTypeProjectList:[{ Id:'234', note:'说明' }] }] } ] let list2 = [{ id:123, GraphTypeName:'第一个', RelationTypeProjectList:[{ Id:'234', note:'说明', count:222 }] }] transform(list1, list2) console.log(JSON.stringify(list1)) 输出 [ { "note":"关系", "code":"345", "ChildGraphicTypeList":[ { "id":123, "GraphTypeName":"第一个", "RelationTypeProjectList":[ { "Id":"234", "note":"说明", "count":222 } ] } ] } ]
你最后修改的对象其实和res.Content没什么关系。
relation = { ...relation, count: counts.count }
这句相当于重新申请了一段内存,赋值给relation这个变量,修改的并不是res.Content内的relation.
可改为relation.count = counts.count
调用:
输出