Helios
Helios

Reputation: 23

JSON array values to separate lists in javascript

I've a question about converting a JSON array. Been stuck a couple of hours, can't figure it out. I've got a JSON array like this:

[
  {
    "id": 1,
    "client": "Marcel",
    "starttime": "15:00:00",
    "endtime": "21:00:00",
    "date": "22-09-2017",
    "weeknumber": 38,
    "zipcode": "3831BC",
    "housenumber": 2,
    "hncharacter": "",
    "place": "Leusden",
    "Salary": 135.13
  },
  {
    "id": 2,
    "client": "Peter",
    "starttime": "13:00:00",
    "endtime": "19:30:00",
    "date": "23-09-2017",
    "weeknumber": 38,
    "zipcode": "3831BC",
    "housenumber": 2,
    "hncharacter": "",
    "place": "Leusden",
    "Salary": 194.87
  },
  {
    "id": 3,
    "client": "Marcel",
    "starttime": "01:45:00",
    "endtime": "09:00:00",
    "date": "24-09-2017",
    "weeknumber": 38,
    "zipcode": "3831BC",
    "housenumber": 2,
    "hncharacter": "",
    "place": "Leusden",
    "Salary": 252.01
  }
]

And I try to have for each object a separate list. so for the first object:

list1 = [1, "Marcel", "15:00:00", "21:00:00", "21-09-2017", 38, "3831BC", 2, "", "Leusden", 135.13]

I tried this:

$.get("restservices/salaries", function(data) {
    for (var i = 0; i < data.length; i++) {
        a.push(data[i].client);
        console.log(a);
    }
})

But that puts the values of all objects in 1 list, the output is

["Marcel", "Peter", "Marcel"]

But what I want is:

["Marcel"]
["Peter"]
["Marcel"]

Upvotes: 1

Views: 71

Answers (2)

Rahul Patil
Rahul Patil

Reputation: 493

You can try this also.

    let users = [{"id": 1,"client": "Marcel","starttime": "15:00:00","endtime": "21:00:00","date": "22-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 135.13},
    {"id": 2,"client": "Peter","starttime": "13:00:00","endtime": "19:30:00","date": "23-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 194.87},
    {"id": 3,"client": "Marcel","starttime": "01:45:00","endtime": "09:00:00","date": "24-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 252.01}]
function demo() {
    let result = [];
    for (let index = 0; index < users.length; index++) {
        let details = [];
        for (let key of Object.keys(users[index])) {
            details.push(users[index][key])
        }
        result.push(details);
    }
    console.log(result);
}
demo();

    let users = [{"id": 1,"client": "Marcel","starttime": "15:00:00","endtime": "21:00:00","date": "22-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 135.13},
        {"id": 2,"client": "Peter","starttime": "13:00:00","endtime": "19:30:00","date": "23-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 194.87},
        {"id": 3,"client": "Marcel","starttime": "01:45:00","endtime": "09:00:00","date": "24-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 252.01}]
    function demo() {
        let result = [];
        for (let index = 0; index < users.length; index++) {
            let details = [];
            for (let key of Object.keys(users[index])) {
                details.push(users[index][key])
            }
            result.push(details);
        }
        console.log(result);
    }
    demo();

Upvotes: 0

Mihai Alexandru-Ionut
Mihai Alexandru-Ionut

Reputation: 48437

You should use Object.values method in order to obtain a simple solution for your requirement.

array=array.map(function(item){
   return Object.values(item);
});

let array=[ { id: 1, client: "Marcel", starttime: "15:00:00", endtime: "21:00:00", date: "22-09-2017", weeknumber: 38, zipcode: "3831BC", housenumber: 2, hncharacter: "", place: "Leusden", Salary: 135.13 }, { id: 2, client: "Peter", starttime: "13:00:00", endtime: "19:30:00", date: "23-09-2017", weeknumber: 38, zipcode: "3831BC", housenumber: 2, hncharacter: "", place: "Leusden", Salary: 194.87 }, { id: 3, client: "Marcel", starttime: "01:45:00", endtime: "09:00:00", date: "24-09-2017", weeknumber: 38, zipcode: "3831BC", housenumber: 2, hncharacter: "", place: "Leusden", Salary: 252.01 }];
array=array.map(function(item){
    return Object.values(item);
});
console.log(array);

Upvotes: 4

Related Questions