javascript删除对象数组的多个值

标签 javascript ecmascript-6

我是 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 的 filterincludes为此。

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/

相关文章:

Javascript 类变量重新分配

javascript - 没有箭头函数的类函数的缩写形式

JavaScript 蓝牙应用程序所需的框架

javascript - 带有yield Promise.all()的生成器函数

javascript - 根据另一个数组的对象属性过滤 JavaScript 数组

javascript - 将元素的宽度设置为等于监视器大小而不改变缩放

javascript - Redux - ES6 更新数组中的对象元素

javascript - 如何为Range添加onKeyDown事件?

javascript - Phonegap (Cordova) iOS 推送通知 onNotificationAPN 事件在后台触发

javascript - 使用 nextUntil 查找当前单元格的索引