javascript - 我正在尝试从数组中的对象推送值
问题描述
我正在尝试推送来自对象数组(键/值)的数据,然后将其推送到数组中,以便稍后显示它们。
我已经尝试过在数组内进行推送,但到目前为止,它始终未定义被推送的项目总数。
//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 - 如何将 Storybook 与使用 [routerLink] (Angular) 的组件一起使用?
- django - 无法将关键字“名称”解析为字段。选项有:categoria、categoria_id、detelle_compra、
- php - 所有变量都正确时连接访问被拒绝
- opengl-es - 在片段着色器中为一组片段着色
- symfony - 编辑对象时如何使用模板表单
- terraform - Terraform 向后兼容 0.13.x 到 0.12.x
- javascript - 点击按钮后页面刷新
- android - 我无法使用房间数据库和协程删除 recyclerview 中的项目
- swift - SWIFT - 透明按钮
- c# - 带类型参数的派生构造函数