簡體   English   中英

推送維度數組

[英]Push a dimensional array

為什么在第二個示例中答案未定義?

 // First var arr = [ [1, 4, 6], ['alex'] ]; var newArr = arr[1]; newArr.push('Peter'); console.log(arr); // Second var arr = [ [1, 4, 6], ['alex'] ]; arr.push([1]['Peter']); console.log(arr); 

代碼[1]['Peter']試圖從數組文字[1]訪問名為Peter的鍵。 它是undefined

您的代碼與此等效:

 var arr = [ [1, 4, 6], ['alex'] ]; var tempArray = [1]; var tempValue = tempArray['Peter'] // undefined arr.push(tempValue); console.log(arr); 

您應該將其更改為: arr[1].push('Peter')

語法[1]['Peter']並沒有您想象的那樣。 您正在傳遞輸入參數。 它沒有引用將其推入的數組,它是完全獨立的。 因此,您實際上是在告訴JavaScript首先創建一個新數組( [1] ),然后嘗試從其中訪問一個名為“ Peter”的索引( ["Peter"] ),然后將其推入下一個空閑索引中在arr 顯然,新數組中不存在“ Peter”索引,這就是為什么它輸出undefined

取而代之的是,您必須像這樣編寫它,以便將其推送到現有數組,該數組本身位於arr索引1處:

 // First var arr = [ [1, 4, 6], ['alex'] ]; var newArr = arr[1]; newArr.push('Peter'); console.log(arr); // Second var arr = [ [1, 4, 6], ['alex'] ]; arr[1].push('Peter'); console.log(arr); 

問題是

arr.push([1]['Peter']);

但是包含單個元素1的數組不具有屬性Peter 數組通常不具有非數字屬性( Array.prototypeObject.prototype

您需要做的就是

var arr = [
  [1, 4, 6],
  ['alex']
];
arr[1].push('Peter');
console.log(arr);

暫無
暫無

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

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