Javascript—修改while循环中的两个数组,两个数组都保留第二个值

Javascript—修改while循环中的两个数组,两个数组都保留第二个值,javascript,arrays,Javascript,Arrays,我有一个数组数据,它包含一个nodeData对象,它包含一个id 我制作了2份阵列副本: const dropAboveData = data.slice(); const dropBelowData = data.slice(); 然后我尝试以不同的方式修改2个复制阵列的两个副本 for(let i = 0; i<data.length; i++){ dropAboveData[i].nodeData.id = -1; dropB

我有一个数组数据,它包含一个nodeData对象,它包含一个id

我制作了2份阵列副本:

    const dropAboveData = data.slice();
    const dropBelowData = data.slice();
然后我尝试以不同的方式修改2个复制阵列的两个副本

    for(let i = 0; i<data.length; i++){
        dropAboveData[i].nodeData.id = -1;
        dropBelowData[i].nodeData.id = -2;
    }

for(让i=0;i,正如charieftl指出的,我没有复制数组中的对象(nodeData对象)

做了我想做的。

做了一份肤浅的拷贝

slice()方法返回数组一部分的浅拷贝 插入从开始到结束(不包括结束)选择的新阵列对象。 原始数组将不会被修改

您可以复制一组对象,如下所示:

var数据=[{
“a”:“0”
}, {
“b”:“1”
}, {
‘c’:‘2’
}]
dropoverdata=[]
dropBelowData=[]
data.map(o=>{
push(JSON.parse(JSON.stringify(o));
push(JSON.parse(JSON.stringify(o));
});

DropOverData[0]=1;//切片对数组中的对象进行复制,但不复制
数据中的对象
    const dropAboveData = data.map(item => item.nodeData.id = -1);
    const dropBelowData = data.map(item => item.nodeData.id = -2);