将简单数组索引推送到索引为空的多维数组中

时间:2013-12-26 23:18:08

标签: javascript arrays multidimensional-array

我目前有两个阵列。第一个数组randomString是各种文本字符串的列表。 第二个数组images包含我希望使用的数组的“结束结构”。 在我的第二个数组中,一些索引是空的。

我希望将第一个数组randomString中的文本字符串推送到具有空索引的第二个数组images

我真的不确定哪种方法最适合这个。我想我可以遍历图像数组并查找空索引并以某种方式推送。猜猜我被困在推动部分。

有什么建议吗?

for (var i=0;i<images.length;i++) {
  if(images[0][i][3] == "") {
    //push??
  }
}

第一个数组如下所示:

var randomString=new Array(
    "Random string 4",
    "Random string 88",
    "Random string 636",
    "Random string 99",
    "Random string 344",
    "Random string 233",
    "Random string 12",
    "Random string 23"
);

第二个数组是一个多维数组,如下所示:

var images=new Array([
    ["image1.png","10", "Name 1", "pre-determined-random-string 1"],
    ["image2.png","26", "Name 2", ""],
    ["image3.png","39", "Name 3", "pre-determined-random-string 2"],
    ["image4.png","40", "Name 4", ""]
    ["image5.png","11", "Name 5", ""]
]);

1 个答案:

答案 0 :(得分:1)

您想重新分配数组值,而不是push 可以这样做:

/* make copy of array in case we need more strings than array contains*/
var stringsArray=randomString.slice();

for (var i=0;i<images.length;i++) {
  if(images[i][3] == "") {
    if( !stringsArray.length){
      stringsArray=randomString.slice();    
    }
    /* take last string from array*/
    images[i][3]=stringsArray.pop()
  }
}

请注意,您正在不必要地添加额外的数组嵌套。以上是基于以下结构

var images=[
    ["image1.png","10", "Name 1", "pre-determined-random-string 1"],
    ......
];

DEMO