Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用map()进行迭代,并删除带有无索引拼接的对象_Javascript_Splice - Fatal编程技术网

Javascript 使用map()进行迭代,并删除带有无索引拼接的对象

Javascript 使用map()进行迭代,并删除带有无索引拼接的对象,javascript,splice,Javascript,Splice,我可以删除带有拼接的元素,但映射中的cicle索引已经已知 if ($(this).hasClass("saveFavoriteMedia")) { saveId = $(this).attr("data-id"); listFavoriteMedia.map(function (x) { if (x.id == saveId) {

我可以删除带有拼接的元素,但映射中的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
                        }
                    });
                }

您可以使用
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;
      }
    });