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