javascript - 使用 Splice() 函数,如何删除特定的数组元素?

标签 javascript arrays meteor splice

当单击图像时,我的代码应该将图像 _id 详细信息添加到 clickedImagesArray 数组中。这一点它成功了。但是,当再次单击图像时,我的代码无法将其从 clickedImagesArray 数组中删除。

在下面找到我的代码:

"click .image": function (event) {

var clickedImage = [this._id];
var clicked = this._id;
var clickedImagesArray = Session.get('clickedImages');

clickedImage.forEach(function (clicked){
    //#### If no duplcate then push() 
    if (clickedImage.indexOf(clicked) ==-1) {
        alert("NOOOO Duplicates!" + clicked);  
        clickedImagesArray.push({imageId: clicked});
        }
    else if (clickedImage.indexOf(clicked) == 0) {
    //#### Else when duplcate found delete duplicate
        alert("Found Duplicates!" + clicked);       
        clickedImagesArray.splice({imageId: clicked});

我感觉我没有正确使用 splice() 函数。

        }     
  }); 

});

任何帮助将不胜感激。

最佳答案

您需要提取数组中包含您的值的索引。 然后使用 splice 从索引中删除该记录。

拼接(startIndex,deleteCount)

startIndex:是您要从中开始删除的索引 deleteCount:要删除的记录数,从startIndex开始

// find the index of the imageId in the array.
var index = clickedImage.indexOf(clicked);

// if item is found in the array remove it.
if (index !== -1) {
  // remove one item starting from the index.
  clickedImage.splice(index, 1);
}

阅读 MDN 中的文档。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

关于javascript - 使用 Splice() 函数,如何删除特定的数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43505942/

相关文章:

javascript - jquery导航显示和隐藏多个页面

javascript - 如何在highcharts中设置动态数据

c# - asp.net 下拉回发在 Firefox 上不起作用

javascript - Array.filter 返回空数组

javascript - 当返回嵌套在 then block 中的 Promise 时,使用 Promise.all 的 map 会返回未定义的数组

javascript - Meteor - 在未登录时发布/订阅用户数据

mongodb - 如何将本地默认 Meteor Mongo 数据库的数据推送到 Heroku mLabs 以供部署在 Heroku 上的应用程序使用?

javascript - 从 DOM 中排除 ng 类逻辑是常见的做法吗?

javascript - 使用 Javascript 计算数组中元素的数量

node.js - 错误 : database names cannot contain the character '.'