Javascript 使用map()进行迭代,并删除带有无索引拼接的对象
我可以删除带有拼接的元素,但映射中的cicle索引已经已知Javascript 使用map()进行迭代,并删除带有无索引拼接的对象,javascript,splice,Javascript,Splice,我可以删除带有拼接的元素,但映射中的cicle索引已经已知 if ($(this).hasClass("saveFavoriteMedia")) { saveId = $(this).attr("data-id"); listFavoriteMedia.map(function (x) { if (x.id == saveId) {
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
}
});
}
您可以使用
map
的回调函数-index的第二个参数
或者如果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);
您可以为此使用过滤器
listFavoriteMedia = listFavoriteMedia.filter(function(x){
if (x.id !== saveId) {
return true;
}
});
@安德里亚,请继续说下去,这不管用。哪种模式?以及带有箭头函数的较短版本
listforvoritemedia=listforvoritemedia.filter(x=>x.id!==saveId)
listFavoriteMedia = listFavoriteMedia.filter(function(x){
if (x.id !== saveId) {
return true;
}
});