我的数组看起来像这样: “MODE:ID:A:B”
["add:123456789:0:0", "del:99887766:0:0", "edit:1471872633890:8845:0", "add:4875125862:1523:NE"]
当用户从表中删除行时,del
条目将添加到数组中。
如果用户在表中添加了新条目,则会向该阵列添加add
条目。
如果用户编辑了一个条目,则会向该阵列添加edit
条目。
我遇到的问题是,如果用户添加然后删除同一行,我最终会输入两个条目:
["add:123456789:0:0", "del:123456789:0:0"]
如何让del
覆盖与ID匹配的添加(和/或)编辑条目?
我试过了:
rows = rows.map(function(value) {
if( value.indexOf(id) > -1 ) {
return false;
}
return value;
});
但只是用'false'替换该条目,它不会删除它。
知道我该怎么做吗?
由于
答案 0 :(得分:1)
jQuery.map将按预期工作。 1}}或undefined
返回值不会被映射。
null
jQuery map回调函数可以返回:
答案 1 :(得分:0)
您可以迭代数组并拆分一个项目以进行检查并更新并重新组合该项目,以便为该元素提供辅助。
此提案只需要一个具有给定id
的项目。
var data = ["add:123456789:0:0", "del:99887766:0:0", "edit:1471872633890:8845:0", "add:4875125862:1523:NE"],
id = '123456789';
data.some(function (a, i, aa) {
var item = a.split(':')
if (item[1] === id) {
item[0] = "del";
aa[i] = item.join(':');
return true;
}
});
console.log(data);
答案 2 :(得分:0)
您最后可以添加一个过滤器:
rows = rows.map(function(value) {
if( value.indexOf(id) > -1 ) {
return false;
}
return value;
})
.filter( function(item) {return item;});
答案 3 :(得分:0)
尝试使用此
rows = $.map(rows, function(value){
if(value.indexOf(id) > -1){
return 'del:' + id;
}
}