JavaScript:在同一索引上推送具有多个值的数组

时间:2013-11-23 03:36:52

标签: javascript arrays push

我有一个数组存储了一些像这样的值:

array[0] = "string", "string"
array[1] = "string", "string"
array[2] = "string", "string"
array[3] = "string"

如你所见,我有时在同一个索引上有2个值,但有时候我没有。 然后我需要将这些值推送到另一个数组,一个值一个。

我不能用这个:

for(var i= 0; i< 4 ; i++){
    newarray.push(array[i][0]);
    newarray.push(array[i][1]);
}

否则我会推空值(我猜)。

如何检查我在该索引上是否有2个值或一个值,所以我可以使用不同的圆圈?

谢谢!

3 个答案:

答案 0 :(得分:1)

执行此操作时,您的代码可能无法正常工作:

array[0] = "a", "b", "c"

它只会将"a"分配给array[0]并返回"c"。要使用这些值分配另一个数组,您应该使用以下内容:

array[0] = ["a", "b", "c"]

为了保持结构一致性,如果我在数组中只有一个元素,我也会使用数组结构。

array[1] = ["a"]

使用它,您可以迭代数组,然后遍历嵌套数组以获取它们的值。

for (var i = 0; i < array.length; i++) {
    for (var j = 0; j < array[i].length; j++) {
        newarray.push(array[i][j]);
    }
}

小提琴:http://jsfiddle.net/nDhP5/

答案 1 :(得分:0)

  

如何检查我在该索引上是否有2个值或一个值,所以我   可以使用不同的角色吗?

假设您的意思是在一个键的数组中存储多个值,您可以检查包含这些值的数组的长度。通过这种方式,您可以查看是否有1个或2个或更多值。

if (array[i].length == 1) { // you have 1 value }

if (array[i].length == 2) { // you have 2 values }

答案 2 :(得分:0)

你可以这样做

var Rdata = []; 
var temp_ray = ["v1","v2","v3"];
Rdata.push(temp_ray);
var Rlen = Rdata.length;
console.log('Rdata length '+Rlen);     // 1

JsFiddle :: Jsbin demo