JS - 使用for将数组添加到具有变量名称操作的数组中

时间:2015-06-04 17:08:40

标签: javascript arrays for-loop concatenation

所以我有一些阵列(实际上我有大约30-40个):

var p1  = ["John", "bio", "john.png"];
var p2  = ["Kate", "bio", "kate.png"];
var p3  = ["Mary", "bio", "mary.png"];

,其中包含我想在HTML中使用的每个人的相应信息。

我想将这些数组中的每一个添加到另一个数组中,以获得最终结果:

var people = [["John", "bio", "john.png"], 
              ["Kate", "bio", "kate.png"], 
              ["Mary", "bio", "mary.png"]];

有没有办法使用for循环将所有这些p1p2p3数组添加到people数组?

我试过了:

for (var i = 1; i <= 30; i++) {
    var toPush = "p" + i;
    people.push(toPush);
}

但显然这只是创建并将字符串推入数组。我怎么能绕过这个?

谢谢!

3 个答案:

答案 0 :(得分:3)

你应该从一个people数组开始,而不是为每个数组创建单独的变量来创建你的数组:

on rawKeyDown pCode
   if pCode is 65535 then
      # do what you want to do to handle the delete key here
   else
      pass rawKeyDown
   end if
end rawKeyDown

等...

答案 1 :(得分:0)

您可以将javascript eval用于此目的,但不建议这样做。有关eval()的问题,请参阅https://stackoverflow.com/a/86580/4810628

&#13;
&#13;
function l(){
  var p1 = ["John", "bio", "john.png"];
  var p2 = ["Kate", "bio", "kate.png"];
  var p3 = ["Mary", "bio", "mary.png"];



  var people = [
    ["John", "bio", "john.png"],
    ["Kate", "bio", "kate.png"],
    ["Mary", "bio", "mary.png"]
  ];
  alert("length before adding elements:"+people.length);

  for (i = 1; i <= 3; i++)

  {
    people.push(eval("p" + i));
  }

  alert("length after elements added:"+people.length);

}
&#13;
<body onload="return l()">
  
  </body>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

function ArrayList()
{
  var people=[];
  people.push(["John", "bio", "john.png"]);
  people.push(["Kate", "bio", "kate.png"]);
  people.push(["Mary", "bio", "mary.png"]);

    for(var j=0;j<people.length;j++)
    {
        console.log( people[j] );
        alert(people[j]);
    }
}

http://jsfiddle.net/ys9jptsn/