我有以下代码:
var cards = [
{
name: 'John',
age: 26
},
{
name: 'Marc',
age: 27
},
{
name: 'Nathan',
age: 21
}
];
var save = cards;
for(var i = 0;i < cards.length; i++){
if(i == 0){
cards.splice(i,1);
}
}
cards = save;
最后卡和拯救是一样的,Marc和Nathan。我希望我的卡片是之前的阵列,但我不明白为什么它不是。
这是一个jsfiddle:https://jsfiddle.net/6g8bkauo/
答案 0 :(得分:2)
var save = cards.slice()
NB。卡引用,每个数组中的对象仍将被共享。
答案 1 :(得分:0)
你引用数组,你必须复制,只需使用lodash
这样做var save = _.cloneDeep(cards);
或没有图书馆:
var save = JSON.parse(JSON.stringify(cards));