修改一个数组会修改我从中制作的另一个数组

时间:2014-12-06 05:18:18

标签: javascript arrays

var allCoords = [{ x: 2, y: 3 }, { x: 3, y: 4 }];
var emptySpaces = allCoords;

emptySpaces.splice(0, 1);
console.log(allCoords.length);
console.log(emptySpaces.length);

我不明白为什么这两个输出" 1"。当我只想要编辑第二个allCoords时,为什么要修改原始数组emptySpaces

1 个答案:

答案 0 :(得分:-1)

像这样修改你的代码:

(function testing() {
    var allCoords = [];
    var emptySpaces = allCoords.slice();

    emptySpaces.push({
        x: 1,
        y: 2
    });
    console.log(allCoords.length);
    console.log(emptySpaces.length);
}());