JavaScript数组求并集,交集和差集

现有两数组 a = [1, 2, 3],b = [2, 4, 5],求 a,b 数组的并集,交集和差集。

1、ES7 方法

ES7 新增了一个 Array.prototype.includes 的数组方法,用于返回一个数组是否包含指定元素,结合 filter 方法。

1
2
3
4
5
6
// 并集
let union = a.concat(b.filter((v) => !a.includes(v))); // [1,2,3,4,5]
// 交集
let intersection = a.filter((v) => b.includes(v)); // [2]
// 差集
let difference = a.concat(b).filter((v) => a.includes(v) && !b.includes(v)); // [1,3]

Read More

JS实现Array.groupBy

现在,对产品列表执行一个简单的操作,将产品按类别分组。例如有如下数据,根据category字段进行分组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const products = [
{
name: "apples",
category: "fruits",
},
{
name: "oranges",
category: "fruits",
},
{
name: "potatoes",
category: "vegetable",
},
];

Read More