我可以删除带有拼接的元素,但在map cicle中已经知道了。
if ($(this).hasClass("saveFavoriteMedia")) {
saveId = $(this).attr("data-id");
listFavoriteMedia.map(function (x) {
if (x.id == saveId) {
//delete x.id; // Work but not delete totaly elements
listFavoriteMedia.splice(index, x.id); //index in already know
}
});
}
答案 0 :(得分:1)
您可以使用过滤器来达到此目的;
listFavoriteMedia = listFavoriteMedia.filter(function(x){
if (x.id !== saveId) {
return true;
}
});
答案 1 :(得分:0)
您可以使用map
的回调函数的第二个参数 - index
listFavoriteMedia.map(function (x,i) { //i is the index
if (x.id == saveId) {
listFavoriteMedia.splice(i, 1); //observe that 1 is given as second parameter of splice to give count of items to be deleted
}
});
如果id
是唯一的,请使用findIndex
var index = listFavoriteMedia.findIndex( s => s.id == saveId );
listFavoriteMedia.splice(index, 1);
如果您的浏览器不支持箭头功能,那么
var index = listFavoriteMedia.findIndex( function(s){ return s.id == saveId });
listFavoriteMedia.splice(index, 1);