本周用过的方法包括
修改数组的方法 push pop unshift shift slice splice
遍历数组的方法 forEach map filter reduce every some find findIndex indexOf
下边是使用例子
所有例子都以arr为原数组
let arr = [0,1,2]
1. 修改数组的方法
向数组中推入一个元素
arr.push(4)
// arr ==> [0,1,2,3]
删除数组最后一位
arr.pop()
// arr ==> [0,1]
向数组前边插入一个元素
arr.unshift(-1)
//arr ==> [-1,0,1,2]
删除数组的第一项
arr.shift()
//arr ==> [1,2]
删除, 修改数组的某几项
arr.splice(0, 2, 3, 4)
//arr ==> [3, 4, 2]
0是起始位置, 2是数量, 3,4 用来补充到删除元素的位置,
只有两个参数的话, 是删除元素
截取数组的某一段
arr.slice(1,2)
//arr不变, 返回新的数组是[1]
//1是截取的起始位置 2是截取截止处下标(不包括该项)
2. 遍历数组,对数组进行操作的方法
数组是否包含某项 返回值为布尔值
arr.includes(1) //true
数组某项的下标 返回值下标
arr.indexOf(1) //1
数组是否包含符合条件的项 返回值布尔值
arr.some(ele => ele >=2) //true
数组是否每一项都符合条件
arr.every(ele => !isNaN(ele)) //true
数组中符合条件的第一项的下标
arr.find(ele => ele>1) //2
数组中符合条件的第一项
arr.find(ele => ele>1) //2
数组每项的映射
arr.map(ele => ele * 2) //[0,2,4]
数组中符合条件的项组成的新数组
arr.filter(ele => ele >= 1) //[1,2]
reduce方法对数组中的每个元素按序执行一个由您提供的reducer函数
每一次运行reducer会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值
arr.reduce((prev, cur) => prev + cur) //3
用一个数组同时记录最小值和最大值
prev就是计算过程中的记录
let arr1 = a1.reduce((prev, cur) => [Math.min(prev[0], cur), Math.max(prev[1], cur)], [Infinity, -1])
数组遍历 进行任何想要的操作, es6版本的for循环
arr.forEach(ele => {可以做的操作} ) // 返回值为undefined