I have the following array:
var my_json = [{
DATE: "2020-02-01",
PRODUCT_NAME: "PROD1",
PRODUCT_QUANTITY_MT: "845",
}, {
DATE: "2020-02-01",
PRODUCT_NAME: "PROD2",
PRODUCT_QUANTITY_MT: "1002",
}, {
DATE: "2020-02-01",
PRODUCT_NAME: "PROD3",
PRODUCT_QUANTITY_MT: "45",
}, {
DATE: "2020-02-02",
PRODUCT_NAME: "PROD1",
PRODUCT_QUANTITY_MT: "20",
}, {
DATE: "2020-02-03",
PRODUCT_NAME: "PROD1",
PRODUCT_QUANTITY_MT: "10",
}, {
DATE: "2020-02-03",
PRODUCT_NAME: "PROD2",
PRODUCT_QUANTITY_MT: "230",
}]
From the above array I want to create two new arrays, for each day for each product how much was sold. The final array should look like this.
The first value would be a default value call DATE
followed by each product name.
var final = [{
title: "DATE"
}, {
title: "PROD1"
}, {
title: "PROD2"
}, {
title: "PROD3"
}]
I managed to create this by doing the following
var columns = [{ "title":"DATE" }];
$.each(my_json, function(index, element) {
columns.push({ "title": element.PRODUCT_NAME })
});
The second array should be in this format:
var data = [
[ "2020-02-01", 845", "1002" , "45"],
[ "2020-02-02", "20", "", "" ],
[ "2020-02-03", "10", "230", "" ],
];
As you can see, on Feb 1
we have a value for all products sold but on Feb 2
it's only PROD1
. Likewise on Feb 3
only PROD2
and PROD3
.
Each row col should match the first array like bellow
desired output of two arrays as bellow
var Array1 = [{title: "DATE"},{title: "PROD1"},{title: "PROD2"},
{title: "PROD3"}]
var Array2 = [
[ "2020-02-01", 845", "1002" , "45"],
[ "2020-02-02", "20", "", "" ],
[ "2020-02-03", "10", "230", "" ],
];