Я пытаюсь выдвинуть значения из объекта внутри массива - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь отправить данные, поступающие из массива объектов (ключ / значение), затем помещаю их в массив, чтобы отобразить их позже.

Я уже пытался выполнить принудительное перемещение внутри массива, нодо сих пор он всегда дает неопределенное значение для общего количества отправляемых элементов.

//array
var clients_array = '[{"code": "1", "name": "client 1"}, 
{"code": "2", "name": "client 2"}, {"code": "3", "name": "client 3"}]';

var displayClient = [];

var json_parse1 = JSON.parse(clients_array);
json_parse1.forEach(function(client){
    console.log(client.code + ' - ' + client.name);
    displayClient.push(client.code + ' - ' + client.name);
    alert(displayClient[i]);
})

Используя приведенный выше код, в console.log я получаю правильные данные, которые я хотел бы нажать.Но при предупреждении массива displayClient, который в этом случае должен быть заполнен данными console.logged, он отображает неопределенные для каждого из данных.Следовательно, я хотел бы выдвинуть правильные данные, как показано в console.log.

1 Ответ

0 голосов
/ 13 февраля 2019

Вам необходимо добавить параметр для i в функции обратного вызова.

json_parse1.forEach(function (client, i) {
                                      ^

var clients_array = '[{"code": "1", "name": "client 1"}, {"code": "2", "name": "client 2"}, {"code": "3", "name": "client 3"}]';

var displayClient = [];

var json_parse1 = JSON.parse(clients_array);
json_parse1.forEach(function (client, i) {
    console.log(client.code + ' - ' + client.name);
    displayClient.push(client.code + ' - ' + client.name);
    alert(displayClient[i]);
})

console.log(displayClient);

Лучше было бы использовать Array#map и вернуть новые предметы.

var array = [{ code: "1", name: "client 1" }, { code: "2", name: "client 2" }, { code: "3", name: "client 3" }],
    displayClient = array.map(({ code, name }) => [code, name].join(' - '));

console.log(displayClient);
...