簡體   English   中英

創建一個動態填充的對象

[英]Creating an object that populates dynamically

我的JavaScript看起來像這樣:

var deletedRows = [];

function DeleteRow(el) {
    deletedRows.push({
        entityid: el.parent().attr('entityid'),
        itemid: el.attr('itemid')
    });
}

我如何簡化此集合,以便不會有重復的entityid 因此,密鑰需要為entityid ,並且值必須為itemid的列表。 IE瀏覽器。 “如果此entityid已經存在,則將itemid添加到其中”

我曾經考慮過用值作為帶分隔符的itemid列表來創建一個關聯數組,但是我真的很想找到一種更簡潔的方法。 任何想法表示贊賞

我不確定我理解你的意思。 如果我這樣做了,則使用此方法,您將獲得一個數組,其中每個entityid的每個itemID為。

var deletedRows = {};

function DeleteRow(el) {
  var ID = el.parent().attr('entityid');
  var itemID = el.attr('itemid');

  if(deletedRow[ID] === undefined)
    deleteRow[ID] = [];
  deletedRows.push(itemID);
}

結果將是:

deletedRows = 
{ 
    "ID1" = ["itemID1", "itemID2"],
    "ID2" = ["itemID3"]
};

使用數組:

var deletedRows = [];

function DeleteRow(el) {
    var entityid = el.parent().attr('entityid');
    var itemid = el.attr('itemid');
    for (var i=0; i<deletedRows.length; ++i) {
        if (deletedRows[i].entityid == entityid) {
            if (deletedRows[i].itemid instanceof Array) {
                deletedRows[i].itemid.push(itemid);
            } else {
                var olditem = deletedRows[i].itemid;
                deletedRows[i] = [olditem, itemid];
            }
            return;
        }
    }
    deletedRows.push({
        entityid: entityid,
        itemid: itemid
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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