Reputation: 57
How can I append a JSON like structure while iterating through a for loop?
For Example (Pseudo Code):
var i;
for (i = 0; i < clients.length; i++) {
date = clients.date;
contact = clients.contact;
}
My main goal is to append as many groups of: dates and contacts as the clients.length data holds.
I need each loop iteration to create something like below of multiple indexes of date and contact groups. My overall goal is to have a data structure like below created through my for loop.
Assume im just using strings for: "Date" & "Contact"
var data = [
{
"Date": "2015-02-03",
"Contact": 1
},
{
"Date": "2017-01-22",
"Contact": 2
}
];
Upvotes: 3
Views: 62573
Reputation: 31
(ES6) You can use map function to extract the data you wish, and then convert it to json.
let clients = [{date:"", contact:"", otherstuff:""}, {date:"", contact:"", otherstuff:""}]
let clientsMapped = clients.map(client => ({Date:client.date, Contact:client.contact}))
let yourJson = JSON.stringify(clientsMapped)
Upvotes: 0
Reputation: 515
It's a simple push object to array operation. Please try below
var data=[];
var i;
for (i = 0; i < clients.length; i++) {
data.push({
date:clients.date,
contact:clients.contact
});
}
Upvotes: 0
Reputation: 176
var data = []
function Client(date, contact) {
this.date = date
this.contact = contact
}
clients = new Array();
for (i = 0; i < 4; i++) {
clients.push(new Client("2018-08-0" + i, i))
}
for (i = 0; i < clients.length; i++) {
var dict = {}
dict['Date'] = clients[i].date
dict['Contact'] = clients[i].contact
data[i] = dict
}
console.log(data)
Upvotes: 2