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