Javascript—修改while循环中的两个数组,两个数组都保留第二个值
我有一个数组数据,它包含一个nodeData对象,它包含一个id 我制作了2份阵列副本: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
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);