在将数组拼接分配给自身时,Javascript控制台打印无法正常工作

Dra*_*fly 19 javascript arrays

当我这样做:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
Run Code Online (Sandbox Code Playgroud)

我把它印在我的控制台上:

["a", "b", "c"]
size:3 
Run Code Online (Sandbox Code Playgroud)

这很好.但是现在我开始拼接这个:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray = testArray.splice(0,1);
Run Code Online (Sandbox Code Playgroud)

这恰好在我的控制台中显示:

["b", "c", undefined × 1]
size:3 
Run Code Online (Sandbox Code Playgroud)

所以第一个问题是,为什么即使拼接在打印之后它也会弄乱我的阵列打印?大小显示正确,但"a"消失了,我最后得到一个未定义的.

所以我想要做的是删除数组中的第一项.基本上是一个转变.所以我这样做:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray = testArray.splice(0,1);
console.log(testArray);
console.log("size:" + testArray.length);
Run Code Online (Sandbox Code Playgroud)

这就是输出的内容:

["b", "c", undefined × 1]
size:3
["a"]
size:1 
Run Code Online (Sandbox Code Playgroud)

不仅大小减少了2,它还删除了除"a"之外的所有内容.到底是怎么回事?

Jam*_*eeh 31

不要将testArray分配给自己.简单地说:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray.splice(0,1);
console.log(testArray);
console.log("size:" + testArray.length);
Run Code Online (Sandbox Code Playgroud)