【问题标题】:I am trying to push values from an object inside an array我正在尝试从数组中的对象推送值
【发布时间】:2019-02-13 13:25:23
【问题描述】:

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

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

//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 中显示的正确数据。

【问题讨论】:

    标签: javascript json object push


    【解决方案1】:

    需要在回调函数中为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);

    【讨论】:

    • 非常感谢伙计,你说的太对了。这解决了我的问题:D
    猜你喜欢
    • 2021-02-03
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2020-11-17
    • 2015-04-20
    • 1970-01-01
    相关资源
    最近更新 更多