javascript - 按值从数组中删除项目

标签 javascript jquery arrays each

我有一系列项目,例如:

var items = [id: "animal", type: "cat", cute: "yes"]

我正在尝试删除与给定 ID 匹配的所有项目。在这种情况下; 动物

我卡住了!我可以通过更简单的数组让它轻松工作,但这不是我需要的……我还需要按值删除项目,因为我不希望通过索引引用项目的麻烦。

有没有我可以使用的 jQuery 方法,我不需要遍历项目数组,而是指定一个选择器?

这是我的 jsFiddle:http://jsfiddle.net/zafrX/

最佳答案

我不确定通过索引引用数组项有多麻烦。删除数组项的标准方法是使用 splice method

for (var i = 0; i < items.length; i++)
    if (items[i] === "animal") { 
        items.splice(i, 1);
        break;
    }

当然,您可以将其概括为一个辅助函数,这样您就不必在任何地方都复制它。


编辑

我刚刚注意到这个不正确的语法:

var items = [id: "animal", type: "cat", cute: "yes"]

你想要这样的东西吗:

 var items = [ {id: "animal",  type: "cat", cute: "yes"}, {id: "mouse",  type: "rodent", cute: "no"}];

这会将删除代码更改为:

for (var i = 0; i < items.length; i++)
    if (items[i].id && items[i].id === "animal") { 
        items.splice(i, 1);
        break;
    }

关于javascript - 按值从数组中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873601/

相关文章:

javascript - 将html表格导出到一列上有tinymce的word

javascript - 将两个数字相加应该显示 1 而不是显示 01

ios - 从 Parse.com 检索数组

c++ - 从 2 个单独的数组中删除重复元素

Javascript:变量范围问题

javascript - WebSocket 数据压缩

jquery - jquery滚动问题。如何自动滚动 onclick 到 div

arrays - 在 swift 3 中从数组中删除特定对象

javascript - Chrome中指向Window对象的 `parent`变量在哪里定义的?

javascript - 我想构建一个 chrome 扩展,它将更新某些页面但没有任何弹出窗口