前言
本文主要从应用来讲数组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.对象和数组转化