我目前有两个阵列。第一个数组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", ""]
]);
答案 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 强>