nil
nil

Reputation: 57

Javascript Append JSON Objects

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

Answers (3)

Wiliam Carvalho
Wiliam Carvalho

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

Liang
Liang

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

clucle
clucle

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

Related Questions