javascript - 当属性值在另一个数组中时,如何从数组中删除对象?
问题描述
我有这个带有 ID 的数组:
const idsArr = [1,2,3]
而且我还有一个包含对象的数组,如下所示:
const arrOfObj = [
{id: 1, name: 'a'},
{id: 2, name: 'b'},
{id: 3, name: 'c'},
{id: 4, name: 'd'},
{id: 5, name: 'e'},
]
我如何过滤arrOfObj
并仅获取那些id
值不包含在其中的对象idsArr
?
预期结果:
[
{id: 4, name: 'd'},
{id: 5, name: 'e'}
]
解决方案
创建一个集合(为了提高效率),然后...过滤:
const arrOfObj = [ {id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 3, name: 'c'}, {id: 4, name: 'd'}, {id: 5, name: 'e'},];
let set = new Set([1,2,3]);
let result = arrOfObj.filter(({id}) => !set.has(id));
console.log(result);
推荐阅读
- php - bootstrap 和 codeIgniter 数据显示在表格中
- python - 使用 Python 比较 JSON 中的值
- c# - MailKit - 将信件移至垃圾箱
- c# - C#当添加一个引用的程序集时,它会抛出一个找不到文件的错误
- ios - 在完成处理程序中隐藏http状态代码的进度条 - Swift 4
- c# - Xamarin.Forms (Android) 中未显示工具栏
- javascript - 正则表达式匹配在特定标题下包含特定单词的句子
- python - Python字符串无效语法
- vhdl - 在 ISE 上生成多个具有不同序列号的二进制文件
- mysql - 如何在 GoDaddy 的 phpMyAdmin 中设置主键和外键关系