JavaScrpt常用数组方法

109 阅读2分钟

本周用过的方法包括

修改数组的方法 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