我的JavaScript看起来像这样:
var deletedRows = [];
function DeleteRow(el) {
deletedRows.push({
entityid: el.parent().attr('entityid'),
itemid: el.attr('itemid')
});
}
如何简化此集合,以便不会出现重复的entityid
。所以密钥必须是entityid
,并且值必须是itemid
的列表。 IE浏览器。 “如果此entityid已存在,请将itemid添加到其中”
我曾经想过用值作为itemid的分隔列表来做一个关联数组,但我真的想找到一种更简洁的方法来做到这一点。任何想法都非常感激
答案 0 :(得分:1)
我不确定我明白你的意思。如果我这样做,使用此方法,您将获得一个包含每个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"]
};
答案 1 :(得分:0)
使用数组:
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
});
}