javascript - 如何根据第二个数组中的值从JS数组中删除对象

标签 javascript jquery arrays

嘿伙计们,我正在尝试从数组中删除与第二个数组中的值匹配的所有对象。请允许我用一些例子来解释!

var originalObj = [
{"id":"88","name":"Lets go testing"},
{"id":"88","name":"Have fun boys and girls"},
{"id":"108","name":"You are awesome!"},
{"id":"99","name":"Have fun boys and girls"},
{"id":"108","name":"You are awesome!"},
{"id":"99","name":"Have fun boys and girls2"},
{"id":"108","name":"You are awesome!"}
]

目前,使用我的 javascript 代码,我只能从对象中删除一个指定的值以及具有该值的任何出现

var updatedObj= $.grep(originalObj , function(e){ 
             return e.id!= '88'; 
        });

console.log(updatedObj)
[
    {"id":"108","name":"You are awesome!"},
    {"id":"99","name":"Have fun boys and girls"},
    {"id":"108","name":"You are awesome!"},
    {"id":"99","name":"Have fun boys and girls2"},
    {"id":"108","name":"You are awesome!"}
]

我想要完成的是让 .grep 函数查找看起来像这样的第二个数组。

 var filterID = ["88","99"];

所以结果应该是这样的

//Needs updating
//var updatedObj= $.grep(originalObj , function(e){ 
//           return e.id!= '88'; <-- needs to match all filterID values instead
//      });

console.log(updatedObj)
[
    {"id":"108","name":"You are awesome!"},
    {"id":"108","name":"You are awesome!"},
    {"id":"108","name":"You are awesome!"}
]

任何帮助将不胜感激!

谢谢。

最佳答案

您可以迭代数组中的所有值并以这种方式进行过滤。

var updatedObj = originalObj;
for (var i in filterID) {
  updatedObj = $.grep(updatedObj , function(e){ 
    return e.id!= filterID[i];
  });
}

关于javascript - 如何根据第二个数组中的值从JS数组中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24538693/

相关文章:

python - 解包参数 : only named arguments may follow *expression

javascript - 如何显示始终保留两位小数的数字 - Angularjs

javascript - 删除元素时 Jquery 变量丢失值

javascript - 如何使用 PHP 验证引导模式中的表单?

jquery - jqGrid 寻呼机文本框大小

javascript - 具有恒定纵横比的 JQuery 对话框

javascript - 输入更改时生成选项选择

javascript - 无限滚动和排序问题

javascript - 查找数组中最长的字符串(即使它是数字数组)

javascript - 所有图像的src与jquery