进行数组操作时,可能要多次操作并重组数组,这时候push操作最好要用深拷贝,否则只是push了一个地址的引用
如:
arr.push(Object.assign({}, item2))
例子:
for(let i = 0; i < res.data.resultList.length; i++) { let item1 = res.data.resultList[i] console.log('item11111:', item1) let flag = false for(let j = 0; j < res.data.existList.length; j++) { let item2 = res.data.existList[j] if (item2.communityId === item1.communityId) { item2.communityName = item1.communityName item2.propertyName = item1.propertyName // arr.push(item2) 错!避免这样 arr.push(Object.assign({}, item2)) // 需要深拷贝操作,否则只是push了一个地址的引用 flag = true } if (flag) { break } } if (!flag) { // debugger arr.push(item1) } }
// 下面的index赋值可能会有错乱 // arr.forEach((item, index) => { // item.index = index + 1 // })