Dilshi
Dilshi

Reputation: 553

create array using push method

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

I need to create like this dynamically, I am using the following code to do that:

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);
}

I need to print this values, for that.

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

so when i try this i get following.

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

Upvotes: 0

Views: 138

Answers (6)

Shubh
Shubh

Reputation: 6741

I am not sure how is your code working! It has some error's if your already aware of.

Your code should work fine after you change to:-

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]);
}

Secondly, how does data.push(elem["p_age"], elem["p_name"], elem["p_date"]); works for you? It should give you undefined.

Just to get myself clear I wrote down your code to a fiddle. Have a look.

Upvotes: 1

c-smile
c-smile

Reputation: 27460

Not

var data=new array();

but

var data=new Array();

Array's class name is Array, but not 'array'.

Upvotes: 1

Sharad
Sharad

Reputation: 743

Hi use x instead of i for loop.

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

It will work.

Upvotes: 1

Shiva Avula
Shiva Avula

Reputation: 1836

Because it is treating them as objects. Try using toString() method.

Upvotes: 1

user1864610
user1864610

Reputation:

This looks suspect:

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

It looks like you're trying to iterate over data, pushing the elements back on to data. I imagine that the $.each() needs to iterate over something else.

I also question why you're pushing elem['p_date'] onto an array twice.

Upvotes: 1

Arun P Johny
Arun P Johny

Reputation: 388316

Try

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

Upvotes: 1

Related Questions