数组方法:forEach map filter find findIndex some every reduce reduceRight
filter
筛选,调用后得到一个数组,这个数组的内部结构和原数组相同,长度大概率不同,会变少
arr.filter((item) => {
return true 或者 false
// 如果上面返回true 则item就会被放在新数组中,如果为false,则不执行任何操作。
// 所谓的新数组,是我们对应的filter的返回值
})
some
判断某个数组中是否有符合条件的值。返回值为布尔值
arr.some(item => true或者false)
Set
Set的一个最大的特点就是数据不重复。Set函数可以接受一个数组(或类数组对象)作为参数来初始化,利用该特性也能做到给数组去重
var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]
// 数组去重:
// 方法4: set
function newArrFn (arr) {
// .new Set方法,返回是一个类数组,需要结合 ...运算符,转成真实数组
return ([...new Set(arr)])
}
console.log(newArrFn(arr));
every
判断某个数组中是否全部符合条件的值。返回值为布尔值
与some相反,只要有一个不符合条件,结果为false,如果全部都符合条件,则结果为true
arr.every(item => true 或者 false)
find
用来查找第一个符合条件的值
返回值是第一个符合条件的值,只要第一次函数中返回true,则会把正在遍历的item给作为返回值返回
arr.find(item => true 或者 false)
findIndex
用来查找第一个符合条件的值的下标
arr.find(item => true 或者 false)
reduce/reduceRight
每次遍历都会保留上一次的返回值
arr.reduce((prevValue, curValue, index, arr) => {
return 值 // 这个值是下一次函数执行的prevValue
}, 初始值) // 初始值是第一次函数执行的prevValue
flat
扁平化数组,没有flat函数我们需要自己封装递归函数进行扁平化。
arr.flat(层数)
如果我们不知道有几层的情况下,可以使用Infinity
arr.flat(Infinity)
fill
在数组对应的位置范围填充相同的值
arr.fill(值, 开始下标, 结束下标) // 后两个值可选
Array.of()
可以把参数变成数组
Array.of(1, 2, 3) // [1,2,3]
静态方法
直接设置给构造函数上的方法,叫静态方法,不需要new直接使用构造函数调用即可。数组中有三个静态方法
- Array.from
- Array.isArray
- Array.of