如何从jquery数组对象中删除项目。
我使用拼接方法如下。但是它会切割数组[i]的下一项。
$.each(array, function (i, item) {
var user = array[i];
jQuery.each(array2, function (index, idata) {
debugger
if (idata.Id == user.UserId) {
tempFlag = 1;
return false; // this stops the each
}
else {
tempFlag = 0;
}
});
if (tempFlag != 1) {
//removes an item here
array.splice(user, 1);
}
})
谁能告诉我这里我错在哪里?
答案 0 :(得分:6)
您应该尝试在jQuery中从数组中删除元素:
jQuery.removeFromArray = function(value, arr) {
return jQuery.grep(arr, function(elem, index) {
return elem !== value;
});
};
var a = [4, 8, 2, 3];
a = jQuery.removeFromArray(8, a);
点击此链接了解更多信息:Clean way to remove element from javascript array (with jQuery, coffeescript)
答案 1 :(得分:4)
您使用user
中的值作为索引,即array[i]
,而不是值i
。
$.each(array, function (i, item) {
var user = array[i];
jQuery.each(array2, function (index, idata) {
debugger
if (idata.Id == user.UserId) {
tempFlag = 1;
return false; // this stops the each
} else {
tempFlag = 0;
}
});
if (tempFlag != 1) {
//removes an item here
array.splice(i, 1);
}
});
您可能会因从当前正在循环的数组中删除项目而遇到问题,但是......