簡體   English   中英

在 Javascript 中創建數組,帶有鍵

[英]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.

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