PS: 看时请注意“原”和“新”,有些方法是修改原数组,有些是返回新数组不对原数组有影响
判断是不是数组的一些方法
1.arr instance of Array
2.Array.isArray(arr)
数组方法
// 头部增删
shift(),
unshift(),
// 尾部增删
push(),
pop(),
splice()(常用:修改万金油),
slice()(常用:ES5复制数组), // 扩展:ES6扩展运算符复制数组 […arr]
sort(sortFunc) // 对 原 数组进行排序,并且你可以在sortFunc中自定义排序方式
reverse() // 原 数组翻转,
concat() // 对两个或多个数组进行连接,返回 新 数组
every() // 数组的每一项符合会返回true,
some() // 数组一项符合就返回true,
filter() // 返回符合条件的 新 数组,
find() // 返回符合条件的数组第一个的值
findIndex() // 返回符合条件的数组第一个下标的值
map() // 对数组的每一项都执行一次回调函数,根据返回值生成 新 数组, 原 数组不变
forEach() 对数组的每一项都执行一次回调函数,没有返回值,
include() // 返回数组是否包含某个值的结果(boolean)
indexOf() // 返回数组是否包含某个值的结果(下标,找不到就返回-1)
lastIndexOf() // 和indexOf顺序相反
keys() // 返回数组项下标的集合
values() // 返回数组项值的集合
entries() // 返回数组项下标和值的集合
// tips:返回的是一个迭代器,需要调用next()或者使用for…of…来取出里面的数据
of() // 将传入的参数变成一个数组
from()
// 将一个类数组变成一个数组,如函数中的argument参数列表
// 去重 Array.from(new Set(arr))
fill()
// 对 原 数组用某个值填充,可以选定开始和结束位置
// fill(num, start?, end?)
join() // 将数组变成字符串(可以选择连接符join(’,’)),返回字符串
reduce()
// 对数组内每个元素都执行一次回调函数
// 回调函数执行时能获得上一个回调函数执行时的返回值,可以理解为是进行了一次迭代(回调函数的第一个参数为上一个回调函数返回的值,第二个参数才是数组当前元素本身)
// 最基本的使用是数组值的累加
// array.reduce(function(total, currentValue, currentIndex, arr), initialValue) 第二个参数为初始值
reduceRight()
// 顺序相反
copyWithin()
// 浅复制数组的一部分到同一数组中的另一个位置,并返回它
flat()
// 将一个包含多重数组的数组降维,填入参数代表降维的次数
// 如果需要整个数组降维一般填Infinity就可以了
flatMap()
// 相当于使用map给每项返回一个数组再用flat(Infinity)进行数组降维