Reputation: 32321
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]]
Upvotes: 2
Views: 59
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
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
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