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

时间:2012-09-07 15:34:06

标签: javascript arrays

当我这样做时:

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”之外的所有内容。发生了什么事?

1 个答案:

答案 0 :(得分:30)

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