前言
本文主要从应用来讲数组api的一些骚操作,如一行代码扁平化n维数组、数组去重、求数组最大值、数组求和、排序、对象和数组的转化等。
上面这些应用场景你可以用一行代码实现吗?
1.扁平化n维数组
Array.flat(n)
是ES10扁平数组的api, n
表示维度, n
值为 Infinity
时维度为无限大。
2.去重
set
是ES6新出来的一种一种定义不重复数组的数据类型。
Array.from
是将类数组转化为数组。
...
是扩展运算符,将set里面的值转化为字符串。
3.排序
sort
是js内置的排序方法,参数为一个函数
4.最大值
Math.max()
是 Math
对象内置的方法,参数是字符串。
reduce
是ES5的数组api,参数有函数和默认初始值。
函数有四个参数:
-
pre
:上一次的返回值 -
cur
:当前值 -
curIndex
:当前值索引 -
arr
:当前数组
5.求和
6.合并
7..判断是否包含值
8.类数组转化
类数组:表示有 length
属性,但是不具备数组的方法。
call
、 apply
:改变 slice
里面的 this
指向 arguments
,所以 arguments
也可调用数组的方法。
Array.from
:将类似数组或可迭代对象创建为数组。
...
:将类数组扩展为字符串,再定义为数组。
9.每一项是否满足
10.有一项是否满足
11.对象和数组转化