将数组的拼接分配给自身时,Javascript控制台打印不起作用

Javascript console printing not working when assigning splice of array to itself

本文关键字:Javascript 控制台 不起作用 打印 数组 拼接 分配      更新时间:2023-09-26

当我这样做时:

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

我把这个打印在我的控制台上:

["a", "b", "c"]
size:3 

这很好。但现在,当我开始拼接这个:

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

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

["b", "c", undefined × 1]
size:3 

所以第一个问题是,为什么它会打乱我对阵列的打印,即使拼接是在打印之后?尺寸显示正确,但"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);

这就是输出的内容:

["b", "c", undefined × 1]
size:3
["a"]
size:1 

大小不仅减少了2,还删除了除"a"之外的所有内容。发生了什么事?

不要将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);