我是 javascript 的新手,我正在尝试从对象数组中删除多个值。
现在我可以像这样删除一个对象
if(obj.findObjectByKey(response, 'cat_id', 171) == true) {
var catId = response.map(item => item.cat_id).indexOf(171);
}
在上面的代码中,我将删除 ID 为“171”的项目,但现在我有一个数组,其中包含我想要删除的多个值。
那么我该如何修改上面的代码,让我传入一个我想从列表中删除的项目数组,例如 ['171', '172', '173, '174'];
最佳答案
如果你可以使用 ES6,请尝试使用 JavaScript 的 filter和 includes为此。
const nums = [1, 2, 3, 4, 5, 6];
const remove = [1, 2, 4, 6];
function removeFromArray(original, remove) {
return original.filter(value => !remove.includes(value));
}
console.log(removeFromArray(nums, remove));
这对字符串同样适用。
const nums = ["1", "2", "3", "4", "5", "6"];
const remove = ["1", "2", "4", "6"];
function removeFromArray(original, remove) {
return original.filter(value => !remove.includes(value));
}
console.log(removeFromArray(nums, remove));
此解决方案还具有不可变的额外优势。这意味着您正在返回新数据而不是变形旧数据。这被认为是良好做法。
https://wecodetheweb.com/2016/02/12/immutable-javascript-using-es6-and-beyond/
关于javascript删除对象数组的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48269545/