2014-09-26 68 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);