繁体   English   中英

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

[英]JavaScript: Push Array with multiple values on same index

我有一个数组,可以存储一些像这样的值:

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个值或一个值,以便可以使用其他圆圈?

谢谢!

当您这样做时,您的代码可能无法按预期工作:

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/

如何检查该索引上是否有2个值或一个值,以便可以使用其他cicle?

假设您要一次将多个值存储在数组中,则可以检查包含这些值的数组的长度。 这样,您可以查看是否具有1个或2个或更多值。

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

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

你可以这样

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

JsFiddle :: Jsbin演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM