0
 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]
4

6 回答 6

1

嗨使用x而不是ifor 循环。

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

它会起作用的。

于 2013-08-06T04:51:09.460 回答
1

不是

var data=new array();

var data=new Array();

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

于 2013-08-06T04:51:32.927 回答
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

为了让自己清楚,我把你的代码写成了小提琴。看一看。

于 2013-08-06T05:33:07.230 回答
1

尝试

var members=[];
$.each(data, function(i, elem) {
    members.push([elem["p_date"],elem["p_name"],elem["p_date"]]);
});
console.log(JSON.stringify(members))
于 2013-08-06T04:00:51.127 回答
1

这看起来很可疑:

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

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

我还质疑您为什么要elem['p_date']两次推入阵列。

于 2013-08-06T04:05:08.133 回答
1

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

于 2013-08-06T04:47:51.293 回答