当我这样做时:
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”之外的所有内容。发生了什么事?
答案 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);