typescript - 用另一个数组过滤一个对象数组
问题描述
Array1 = [{id: "1"}.{id: 2},{id: "3"}]
Array2 = [{id: "1"}.{id: 2},{id: "3"}, {id: "4"}, {id: "5"}]
我需要从数组 2 中获取数组 1 中没有的对象;
结果应该是:
ArrayFiltered = [{id: "4"}, {id: "5"}]
那么我怎么能用打字稿做到这一点呢?
解决方案
没有内置函数可以找到它,因此您需要构建一个。
@Roberto 提供的答案可能是您将得到的最好的答案......
Array2.filter(elem2 => !Array1.some(elem1 => elem1.id === elem2.id)
这里有一些链接
过滤器:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
一些:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
如果过滤条件在您的用例中更复杂,我建议将回调拉出并将其命名为单独的函数,以便您可以像这样调用它
Array2.filter(el => disjointFilter(Array1, el))
推荐阅读
- sql - 来自 shell 脚本的 SQL 中绑定变量的问题
- matlab - 如何在 Matlab 中将 1x1 单元格数组转换为日期时间字符串的 5x1 单元格数组
- elasticsearch - Elasticsearch,如何按日期存储数据?
- c++ - 获取行数输入,然后在控制台中绘制星号
- laravel - 获取所有相关记录都标记为完整的唯一用户列表
- java - 在 EJB 类之间传递 EntityManager?
- html - Colgroup 用于具有三级标题的复杂表
- azure - 访问 Azure 函数应用代理 URL 返回 403
- react-native - 在自己的 tabBarButton 中反应导航 onPress 功能?
- google-sheets - Google 表格 countunique + query + importrange = 语法错误