簡體   English   中英

在將數組拼接分配給自身時,Javascript控制台打印無法正常工作

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

當我這樣做:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM