数组内容深拷贝的应用

进行数组操作时,可能要多次操作并重组数组,这时候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 // })

 

上一篇:Vue如何给V-for的某个标签添加样式


下一篇:Mac item2如何使用rz sz 上传下载命令