-1

Initially my variable is empty.

var data = [];

After insertion of record it should be like,

data = [
  { "date" : "2013-01-01", "open" : 45 },
  { "date" : "2013-02-01", "open" : 50 }
];

Inserting new attribute to existing data,

data = [
  { "date" : "2013-01-01", "open" : 45 , "close": 49},
  { "date" : "2013-02-01", "open" : 50 , "close": 60}
];

How can we handle these 2 scenarios using JavaScript or J Query?

  • have a look at https://stackoverflow.com/questions/351409/how-to-append-something-to-an-array and https://stackoverflow.com/questions/17367889/what-is-the-concept-of-array-map – Phil Mar 03 '18 at 07:22

2 Answers2

0

That's very simple. Find the snippet below.

First scenario,

data.push({ "date" : "2013-01-01", "open" : 45 },
          { "date" : "2013-02-01", "open" : 50 })

/* Data is 
   [{ "date" : "2013-01-01", "open" : 45 },
    {"date" : "2013-02-01", "open" : 50 }] */

Second scenario,

data = data.map(item => {item.close='30';return item})
/* Data is 
   [ { date: '2013-01-01', open: 45, close: '30' },
     { date: '2013-02-01', open: 50, close: '30' } ] */
Ganesh
  • 1,820
  • 2
  • 20
  • 40
0

You can also make it possible using $.each

var data = [{ "date" : "2013-01-01", "open" : 45 }, { "date" : "2013-02-01", "open" : 50 }];
var result = [];
var newData = {};
var dataValLen = 0;
$.each(data, function (i, dataVal) {
    dataValLen = $.map(dataVal, function(n, i) { return i; }).length;       
    $.each(dataVal, function (index, value) {
        newData[index] = value;
        if (i == dataValLen - 1)
            newData['open'] = 45;
    });
    result[i] = newData;
});
console.log(result);
user6016913
  • 181
  • 2
  • 10