Pawan
Pawan

Reputation: 32321

How to add one more property to the dynamically created array?

var props = [
  "current_day", "open_val", "high_val", "low_val", "close_val"
];

var data = [  
   {  
      "current_day":"2011-08-01",
      "open_val":136.65,
      "high_val":136.96,
      "low_val":134.15,
      "close_val":134.15
   },
   {  
      "current_day":"2011-08-02",
      "open_val":135.26,
      "high_val":135.95,
      "low_val":131.50,
      "close_val":131.85
   }
]

var arrays = [];

for ( var i = 0; i < data.length; ++i )
  {
    var array = [];

    for ( var j = 0; j < props.length; ++j )
      {
        array.push( data[i][props[j]] );
      }

    arrays.push(array);
  }

console.log(JSON.stringify(arrays));

When i run the output of this is

[["2011-08-01",136.65,136.96,134.15,134.15],["2011-08-02",135.26,135.95,131.5,131.85]]

Could you please tell me how can i add close_value also at the end of the array so that it looks like this

[["2011-08-01",136.65,136.96,134.15,134.15,134.15],["2011-08-02",135.26,135.95,131.5,131.85,131.85]]

http://jsfiddle.net/4pxrhhvj/

Upvotes: 2

Views: 59

Answers (3)

Navoneel Talukdar
Navoneel Talukdar

Reputation: 4598

Just like this? Updated your fiddle JSFiddle

var nprops = [
  "close_val"
];

 for ( var i = 0; i < data.length; ++i )
  {        
    for ( var ii = 0; ii < arrays.length; ++ii )
     {
    for ( var j = 0; j < nprops.length; ++j )
      {
        var closeval = '';
        closeval = data[i][nprops[j]] ;
      }
    arrays[ii].push(closeval);
    }
  }
  for ( var i1 = 0; i1 < arrays.length; ++ii )
     {
         arrays[i1].pop();
     }
  console.log(JSON.stringify(arrays));

Upvotes: 1

Muhammad Hassan
Muhammad Hassan

Reputation: 14391

Try this code

var props = [
  "current_day", "open_val", "high_val", "low_val", "close_val"
];

var data = [{
  "current_day": "2011-08-01",
  "open_val": 136.65,
  "high_val": 136.96,
  "low_val": 134.15,
  "close_val": 134.15
}, {
  "current_day": "2011-08-02",
  "open_val": 135.26,
  "high_val": 135.95,
  "low_val": 131.50,
  "close_val": 131.85
}];

var arrays = [];

for (var i = 0; i < data.length; ++i) {
  var array = [];

  for (var j = 0; j < props.length; ++j) {
    array[j] = data[i][props[j]];
  }

  arrays.push(array);
}

console.log(JSON.stringify(arrays));

Upvotes: 0

Jai
Jai

Reputation: 74738

You can use if/else in the inner for loop:

var props = [
  "current_day", "open_val", "high_val", "low_val", "close_val"
];

var data = [{
  "current_day": "2011-08-01",
  "open_val": 136.65,
  "high_val": 136.96,
  "low_val": 134.15,
  "close_val": 134.15
}, {
  "current_day": "2011-08-02",
  "open_val": 135.26,
  "high_val": 135.95,
  "low_val": 131.50,
  "close_val": 131.85
}]

var arrays = [];

for (var i = 0; i < data.length; ++i) {
  var array = [];

  for (var j = 0; j < props.length; ++j) {
    if (props[j] !== "close_val") {
      array.push(data[i][props[j]]);
    } else {
      array.push(data[i][props[j]]);
      array.push(data[i][props[j]]);
    }
  }

  arrays.push(array);
}

document.querySelector('pre').innerHTML = JSON.stringify(arrays);
<pre></pre>

Upvotes: 0

Related Questions