首页 > 解决方案 > 从多个数组中查找唯一值,跳过空数组

问题描述

注意:不是重复的问题..这里我需要跳过空数组。

假设我有几个数组,例如:

var a = [1, 2, 3, 4],
b = [2, 4],
c = [],
d = [4];

使用以下功能,我可以获得所需的结果:[4]

var a = [1, 2, 3, 4],
  b = [2, 4],
  c = [],
  d = [4];

var res = [a, b, c, d].reduce((previous, current) =>
  !previous.length || previous.filter((x) => !current.length || current.includes(x)),
);

console.log(res)

!current.length ||在上面包括绕过空数组ca但是,如果集合中的第一个数组即为空,则这不起作用。结果将是[]

标签: javascripttypescript

解决方案


只是过滤。使代码更具可读性

var a = [1, 2, 3, 4],
  b = [2, 4],
  c = [],
  d = [4];

var res = [c, b, a, d].filter(arr => arr.length).reduce((previous, current) =>
   previous.filter((x) => current.includes(x)),
);

console.log(res)


推荐阅读