javascript - 我正在尝试从数组内的对象中推送值

标签 javascript json object push

我正在尝试推送来自对象数组(键/值)的数据,然后将其推送到数组中,以便稍后显示它们。

我已经尝试过在数组内进行推送,但到目前为止,它总是给出未定义的推送项目总数。

//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);

关于javascript - 我正在尝试从数组内的对象中推送值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54671322/

相关文章:

java - 初始化多维数组时出现问题

javascript - Javascript 中对象的特定属性

javascript - 如何获取点击标签的位置?

javascript - 使用 $.delegate() 在命名空间中选择元素

javascript - 添加 <a> 标签时 Superfish 损坏

javascript - 如何创建更改网页字体的 Javascript/JSON 脚本

javascript - Mapbox标记属性更新: Why doesn't this work?

java - 如何在 Jackson JsonMappingException 中获取 JSON 对象的路径

javascript - JS中如何将对象的key和value存入数组?

javascript - Xhtml写URL,哪个是正确的?