保存Javascript数组的状态和值

时间:2015-10-20 16:56:33

标签: javascript arrays

我有以下代码:

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/

2 个答案:

答案 0 :(得分:2)

var save = cards.slice()

NB。卡引用,每个数组中的对象仍将被共享。

答案 1 :(得分:0)

你引用数组,你必须复制,只需使用lodash

这样做
var save = _.cloneDeep(cards);

或没有图书馆:

var save = JSON.parse(JSON.stringify(cards));