数组操作
const arr = [1,2,3]
1.push()
返回数组长度
arr.push(4, 5) // 5
2.pop()
删除并返回数组最后一个元素
arr.pop() // 3
3.shift() 与 unshift()
shift删除并返回数组第一个元素
arr.shift() // 1
unshift向数组开头添加1或多个元素并返回新长度
arr.unshift(0) // 4
4.splice()
从数组删除/插入/替换元素并返回
(1)删除元素。第一个元素起始位置,第二个参数传要删除的个数,第二个参数不传,会从开始的位置把后面的全部删除
arr.splice(0, 2) // [3]
(2)插入元素。第二个参数传0,后面跟上要插入的内容
arr.splice(1, 0, '嗨嗨嗨') // [1,2,'嗨嗨嗨',3]
(3)替换元素。 第一个参数是开始的位置,第二个参数是要替换的个数,后面是要替换的内容
arr.splice(0, 1, 9) // [9,2,3]
5.slice()
返回指定数组的片段或子数组,不包括尾
arr.slice(0, 2) // [1, 2]
6.concat()
创建、连接、复制,返回一个新数组
arr.concat(['嗨嗨嗨'], [4, 5]) // [1,2,3,'嗨嗨嗨',4,5]
7.find() 与 findIndex()
find()返回通过测试(函数内判断)的数组的第一个元素的值,否则返回undefined
arr.find(element => element > 1) // 2
findIndex()返回符合条件的数组第一个元素位置,否则返回-1
arr.findIndex(element => element > 1) // 1
8.some() 与 every()
some()检查数组元素是否满足条件,有一个满足返回true,停止检查
arr.some(element => element > 0) //true
every()检测数组所有元素是否都符合指定条件
arr.every(element => element > 0) //true
9.fill()
将一个固定值替换数组的元素,三个参数,填充值,填充位置,不包括尾
arr.fill(7, 1, 2) //[1,7,3]
10.foreach()
无返回值,对数组的每个元素执行一次提供的函数
arr.foreach(function(value, index, array) {
...
})
11.map()
返回新数组,元素为原始数组元素处理后的值
arr.map(element => element > 2) //[false, false, true]
12.fliter()
返回新数组,元素是通过检查指定数组中符合条件的所有元素
arr.fliter(element => element > 2) // [3]
13.join()
将数组中的元素通过separator连接成字符串,并返回该字符串,separator默认为","
arr.join(';') //"1;2;3"
14.reduce()
数组的归并方法,会对数组每一项进行遍历
reduce() 可同时将前面数组项遍历产生的结果与当前遍历项进行运算
arr.reduce(function(prev, cur, index, arr), initialValue)
---------------------------------------------------------
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1
init 表示初始值