JavaScript小技巧 - 数组篇

本文整理了一些在日常工作可以用到的JavaScript数组小技巧

去重

巧用Set特性

1
const arr = [1, 2, 2, 3, 4, 7, 7]
2
const uniqueArr = [...new Set(arr)]
3
console.log(uniqueArr)
4
// [1, 2, 3, 4, 7]

详解ECMAScript2019/ES10新属性

每年都有一些新的属性进入ECMA262标准,今年发布的ECMAScript2019/ES10同样也有很多新的特性,本文将会挑选一些普通开发者会用到的新属性进行深入的解读。

Array.prototype.flat()

The flat() method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth. – MDN

简单来说flat这个函数就是按照一定的深度depth将一个深层次嵌套的数组拍扁, 例子:

1
const nestedArr = [1, 2, [3, 4, [5, 6, [7, [8], 9]]], 10]
2
console.log(nestedArr.flat())
3
// [1, 2, 3, 4, [5, 6, [7, [8], 9]], 10]
4
console.log(nestedArr.flat(2))
5
// [1, 2, 3, 4, 5, 6, [7, [8], 9], 10]
6
console.log(nestedArr.flat(3))
7
// [1, 2, 3, 4, 5, 6, 7, [8], 9, 10]
8
console.log(nestedArr.flat(4))
9
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
10
console.log(nestedArr.flat(Infinity))
11
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

由上面的例子可以看出flat会按照指定的深度depth将一个数组扁平化,如果需要将数组完全拍扁变成一维数组,则指定depth为无限大,即是Infinity,相反如果不指定深度,其默认值是1。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×