簡體   English   中英

為什么我無法推入數組並在javascript函數參數中使用它?

[英]Why cant I push inside an array and use it in a function argument in javascript?

為什么b和c在下面的代碼中不相同? 第2行中的語句執行順序是什么?

var a = [1,2];
var b = new Array(a.push(1)); //[undefined, undefined, undefined]
var c = new Array(a);         // [[1, 2, 1]]

.push()函數返回數組的新長度,而不是數組本身。 因此, b被初始化為3個元素的空數組,因為.push()返回3(在將1加到數組a的末尾之后)。

您還可以使用slice函數克隆數組,以替代構造函數。 如果你想用這種方式a保持不變。

var a = [1,2];
var b = a.slice(); 
b.push(1);            // [[1, 2, 1]]
var c = b.slice();    // [[1, 2, 1]]

暫無
暫無

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

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