【问题标题】:Multiple filters for arrays - Typescript数组的多个过滤器 - 打字稿
【发布时间】:2021-09-14 06:49:47
【问题描述】:

我有 3 个数组。我想返回与array2 和array3 不同的array1 中的元素。 示例:

array1: ["Peter", "James", "JohnDoe", "Jackie"]
array2: ["James", "Dog"]
array3: ["JohnDoe", "Cat"]

Output: ["Peter", "Jackie"]

这是我从 array1 中过滤 array2 的代码 sn-p。

  const array1, array2, array3;

  const result = array1.filter(
    element=> !array2.some(ele => element.id === ele.id)
  );
// Output: ["Peter", "JohnDoe", "Jackie"]

我可以考虑创建另一个用于过滤 array3 的 const,但是是否有更好/优雅的方式将过滤器附加在一起(在一个语句中)?谢谢!

【问题讨论】:

  • 你试过类似 res = array1.filter(item => !array2.includes(item) && !array3.includes(item));

标签: typescript


【解决方案1】:

你可以这样解决。只需添加&& secondCondition。我还删除了 id 访问器,因为代码不适用于您提供的示例

const array1 = ["Peter", "James", "JohnDoe", "Jackie"]
const array2 = ["James", "Dog"]
const array3 = ["JohnDoe", "Cat"]

const result = array1.filter(
  element => !array2.some(ele => element === ele) && !array3.some(ele => element === ele)
);

console.log(result)

【讨论】:

猜你喜欢
  • 2017-09-10
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2017-08-10
相关资源
最近更新 更多