《Favorite JavaScript utilities in single line of code! No more!》笔记

post地址

Array.isArray来判断是否是array

const isArr = Array.isArray(arguments)

array.flatMap

有一个替代 array.map()的方法:array.flatMap()(从ES2019开始可用)。这个方法给了我们映射的能力,但也可以在生成的映射数组中删除甚至添加新的项目。

题目是: 快速生成'笛卡尔积'的数组

题目Create cartesian product

JavaScript version

const cartesian = (...sets) => sets.reduce((acc, set) => acc.flatMap((x) => set.map((y) => [...x, y])), [[]]);

Example

cartesian([1, 2], [3, 4]); // [ [1, 3], [1, 4], [2, 3], [2, 4] ]
/*       3       4  
      ---------------
1  |  [1, 3]  [1, 4]  |
2  |  [2, 3]  [2, 4]
*/

判断两个数组是否内容一致(不论数组元素的顺序)

关键是 new Set 和 数组的sort函数

// `a` and `b` are arrays
const isEqual = (a, b) => JSON.stringify([...new Set(a)].sort()) === JSON.stringify([...new Set(b)].sort());