[英]Create array in Javascript, with Keys
我正在尝试在 javascript 中创建一个数组。
这是我的代码:
var arr = {};
for (q = 0; q < ids.length; q++) {
var rowId = ids[q];
var rowData = jQuery("#<%= JQGrid2.ClientID %>").jqGrid('getRowData', rowId);
arr["section"] = rowData.inv_section;
arr["po"] = rowData.cust_po;
arr["description"] = rowData.description;
};
console.log(arr);
上面代码的结果是:
{description: "Telephone Calls", po: "PO3547", section: "Telephony"}
但是我想连接循环中的所有项目,所以我最终得到一个数组,如下所示:
[{description: "Telephone Calls", po: "PO3547", section: "Telephony"},
{section: Telephony, po: "PO0067", description: "ISDN"},
{section: Managed Service, po: "PO0066", description: "Desktop Support"},
{section: Managed Service, po: "PO0066", description: "Desktop Support"}]
您正在将“数组”初始化为 object。 通过以下方式更改您的代码:
var arr = [];
for (q = 0; q < ids.length; q++) {
var rowId = ids[q];
var rowData = jQuery("#<%= JQGrid2.ClientID %>").jqGrid('getRowData', rowId);
var item = {}
item["section"] = rowData.inv_section;
item["po"] = rowData.cust_po;
item["description"] = rowData.description;
arr.push(item)
};
console.log(arr);
您实际上是将 id 列表映射到相应对象的列表。 尝试以下函数式方法来最小化初始化错误。
const arr = ids.map(rowId => {
const rowData = jQuery("#<%= JQGrid2.ClientID %>").jqGrid('getRowData', rowId);
return {
section: rowData.inv_section,
po: rowData.cust_po,
description: rowData.description,
};
});
console.log(arr);
编辑:在我的帖子之后,我看到了@Barmar 的评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.