簡體   English   中英

我正在嘗試從數組內的對象中推送值

[英]I am trying to push values from an object inside an array

我正在嘗試推送來自對象(鍵/值)數組的數據,然后將其推送到數組中,以便稍后顯示它們。

我已經嘗試過在數組內部進行推送,但到目前為止,對於推送的項目總數,它始終未定義。

//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中顯示的正確數據。

您需要在回調函數中為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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM