1.生成指定范围的数字
在某些情况下,我们会创建一个处在两个数之间的数组。假设我们要判断某人的生日是否在某个范围的年份内,那么下面是实现它的一个很简单的方法
1
2
3
4
5
6
|
let start = 1900, end = 2000;
[... new Array(end + 1).keys()].slice(start);
// [ 1900, 1901, ..., 2000]
// 还有这种方式,但对于很的范围就不太稳定
Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
2.使用值数组作为函数的参数
在某些情况下,我们需要将值收集到数组中,然后将其作为函数的参数传递。 使用 ES6,可以使用扩展运算符(...)并从[arg1, arg2] > (arg1, arg2)中提取数组:
1
2
3
4
5
6
7
|
const parts = {
first: [0, 2],
second: [1, 3],
}
[ "Hello" , "World" , "JS" , "Tricks" ].slice(...parts.second)
// ["World", "JS"]
|
3.将值用作 Math 方法的参数
当我们需要在数组中使用Math.max或Math.min来找到最大或者最小值时,我们可以像下面这样进行操作:
1
2
3
4
5
6
7
8
9
|
const elementsHeight = [...document.body.children].map(
el => el.getBoundingClientRect().y
);
Math.max(...elementsHeight);
// 474
const numbers = [100, 100, -1000, 2000, -3000, 40000];
Math.min(...numbers);
// -3000
|
4.合并/展平数组中的数组
Array 有一个很好的方法,称为Array.flat,它是需要一个depth参数,表示数组嵌套的深度,默认值为1。 但是,如果我们不知道深度怎么办,则需要将其全部展平,只需将Infinity作为参数即可