2014-09-26 54 views
-3

我有一個數組,我想把它放在另一個使用索引的數組中。我如何推陣列陣列

例如:

arry[1].push(sub_array_1) 
array[2].push (sub_array_2) 

,但我得到一個錯誤,如果我寫的:

var sub_array_1 = [1, 2, 2, 2, 2]; 

arry[1].push(sub_array_1) 
+0

你要告訴我們什麼錯誤的是還是我們必須猜測?我不喜歡猜謎遊戲。另外,'arry'和'array'的價值是什麼? – 2014-09-26 21:54:09

+0

什麼是數組變量? – dizel3d 2014-09-26 21:54:55

+0

從閱讀「Array#push'和數組元素訪問文檔開始。 – 2014-09-27 02:48:33

回答

0

假設:

var arry = [9,8,7]; 
var sub_array_1 = [1,2,2,2,2]; 
  1. 如果你試圖插入sub_array_1arry作爲一個單一的元素,只需使用splice直接:

    arry.splice(1, 0, sub_array_1); 
    

    結果將是:

    [9,[1,2,2,2,2],8,7] 
    
  2. 在另一方面,如果你試圖插入內容sub_array_1之前arry的第二個元素,你可以這樣做:

    Array.prototyp e.splice.apply(arry,[1,0] .concat(sub_array_1));

    結果將是:

    [9,1,2,2,2,2,8,7] 
    

    這裏是一個更一般的功能:

    function insert(arrayDest, index, arraySrc) { 
        Array.prototype.splice.apply(arrayDest, [index, 0].concat(arraySrc)); 
    } 
    
+1

既然'arry'是一個數組,爲什麼不只是我們'arry.splice()'? – slebetman 2014-09-26 22:37:52

+0

因爲'splice'需要插入的元素作爲單獨的值傳遞,而不是數組。 – cybersam 2014-09-26 22:44:10

+0

啊。我認爲你對這個問題的理解是錯誤的。他希望將sub_array插入到數組中。不是sub_array的內容。如果您認爲您的解釋是正確的,請詢問OP澄清。 – slebetman 2014-09-26 22:49:57

0

你正在使用錯誤的語法!按照下面提到的方法。

var sub_array_1 = [1,2,2,2,2]; 
arry[1] = sub_array_1; 

// OR 

var sub_array_1 = [1,2,2,2,2]; 
arry.push(sub_array_1); 

.push(ele)將項目添加到陣列,從而增加陣列的長度由1記住數組索引開始於0

如果您需要向特定索引添加項目(數組/對象/其他),請使用[index]。例如:arry[0] = [1,23]; arry[1] = [4,5,6,7];

+0

希望它解決你的問題:)請標記答案滴答:) – softvar 2014-09-26 22:20:24

0
obj.arrayOne.push(arrayLetters); 

obj['arrayOne'].push(arrayLetters);