使用push方法创建数组

时间:2013-08-06 03:53:19

标签: javascript arrays

 var members = [
     ['Fred G. Aandahl', '1951-1953', 'North Dakota'],
     ['Watkins Moorman Abbitt', '1948-1973', 'Virginia'],
 ];

我需要动态创建,我使用以下代码来执行此操作:

var data = new array();
var members = [];
$.each(data, function (i, elem) {
    data.push(elem["p_age"], elem["p_name"], elem["p_date"]);
    members.push(data);
});
console.log(members);
}

我需要打印这个值。

for(var x = 0; x < members.length; x++) {
    console.log(members[i][0]);
    console.log(members[i][1]);
    console.log(members[i][2]);
}

因此,当我尝试这个时,我会得到以下。

  [object][object][object][object][object][object]

6 个答案:

答案 0 :(得分:1)

尝试

var members=[];
$.each(data, function(i, elem) {
    members.push([elem["p_date"],elem["p_name"],elem["p_date"]]);
});
console.log(JSON.stringify(members))

答案 1 :(得分:1)

这看起来很可疑:

$.each(data, function(i, elem) {
  data.push(elem["p_date"],elem["p_name"],elem["p_date"]);

看起来您正在尝试迭代data,将元素重新推送到data。我想$ .each()需要迭代其他东西。

我也质疑为什么要将elem['p_date']推到数组上两次。

答案 2 :(得分:1)

因为它将它们视为对象。尝试使用toString()方法。

答案 3 :(得分:1)

您可以使用x代替i进行循环播放。

for(var x=0;x<members.length;x++){
                      console.log(members[x][0]);
                      console.log(members[x][1]);
                       console.log(members[x][2]);
                 }

它会起作用。

答案 4 :(得分:1)

var data=new array();

但是

var data=new Array();

Array的类名是Array,但不是'array'。

答案 5 :(得分:1)

我不确定你的代码是如何工作的!如果您已经知道,它有一些错误。

更改为: -

后,您的代码应该可以正常工作
var data = new Array();//Was an Error in your code
var members = [];
$.each(temp, function (i, elem) {
    data.push(elem["p_age"], elem["p_name"], elem["p_date"]);
    members.push(data);
});

console.log(members);
for (var x = 0; x < members.length; x++) {
    console.log(members[x][0]);//Was an Error in your code
    console.log(members[x][1]);
    console.log(members[x][2]);
}

其次,data.push(elem["p_age"], elem["p_name"], elem["p_date"]);如何为您服务?它应该给你undefined

为了清楚自己,我把你的代码写成了小提琴。 Have a look.