前言
在JS中数组其实有很多好用的方法,下面总结了常用方法以及使用方式
使用到的数组
let arr1 = [1, 2, 3] let arr2 = [4, 5, 6]
一、pop()
函数原型:T pop()
作用:将数组最后一个元素删除并返回
使用如下:
// 删除3并返回
let number = arr1.pop();
// 打印3
console.log(number)
二、push()
函数原型:number push(v1, v2, ...)
作用:向数组末尾添加一个或多个元素,并返回数组的新长度
使用如下:
// 向[1, 2, 3]末尾添加4,5 -> [1, 2, 3, 4, 5],得到数组新长度5
let newLenth = arr1.push(4, 5);
// 打印结果:[1, 2, 3, 4, 5] 5
console.log(arr1, newLenth)
三、shift()
函数原型:T shift()
作用:删除并返回第一个元素
使用如下:
// [1, 2, 3]删除第一个元素 -> [2, 3]
let number = arr1.shift()
// 打印结果: 1 [2, 3]
console.log(number, arr1)
四、unshift
函数原型:number unshift(v1, v2, ...)
作用:向数组首部添加一个或多个元素,并返回数组的新长度
使用如下:
// 向[1, 2, 3]首部添加-1, 0 -> [-1, 0, 1, 2, 3]
arr1.unshift(-1, 0)
五、splice
函数原型:Array splice(deleteIndex, deleteCount)
作用:从指定下标向后删除一个或多个元素,并将删除的元素放到新数组中返回
使用如下:
// 从[1, 2, 3]中下标0开始向后删除两个元素
// arr1: {1, 2, 3} -> arr1: {3}
// deleteValues: {1, 2}
let deleteValues= arr1.splice(0, 2)
六、indexOf()
函数原型:number indexOf(val)
作用:找到元素第一次出现的下标
使用如下:
// [1, 2, 3]中2第一次出现的下标为1
arr1.indexOf(2)
七、lastIndexOf()
函数原型:number lastIndexOf(val)
作用:找到元素最后一次出现的下标
使用如下:
// [1, 2, 3]中3最后一次出现的下标为2
arr1.lastIndexOf(3)
八、reverse()
函数原型:this reverse()
作用:将数组内元素反转,不产生新数组
使用如下:
// arr1: {1, 2, 3} -> arr1: {3, 2, 1}
arr1.reverse()
九、sort()
函数原型:this sort(compareFunc)
作用:将数组内元素按照指定规则进行排序,默认从小到大
使用如下:
// 从小到大排序 [1, 2, 3] -> [1, 2, 3]
arr1.sort()
// 从大到小排序 [1, 2, 3] -> [3, 2, 1]
arr1.sort((v1, v2) => v2 - v1)
十、includes()
函数原型:boolean includes(val)
作用:判断数组中是否包含指定值
使用如下:
// 判断[1, 2, 3]中是否包含1 -> true
arr1.includes(1)
十一、concat()
函数原型:T[] concat(T[] arr)
作用:创建新数组,将当前数组元素放新数组前面,arr数组放新数组后面,返回拼接后的新数组
使用如下:
// arr1: {1, 2, 3}
// arr2: {4, 5, 6}
// arr3: {1, 2, 3, 4, 5, 6}
let arr3 = arr1.concat(arr2)
十二、join()
函数原型:string join(separator)
作用:将数组中的元素拼接成字符串,可以指定分隔符,默认分隔符为逗号(,)
使用如下:
// arr1String: '1,2,3'
let arr1String = arr1.join()
// arr1String2: '1 and 2 and 3'
let arr1String2 = arr1.join(' and ')
十三、filter()
函数原型:T[] filter(filterConditionFunc)
作用:将满足条件的元素过滤到新数组中,旧数组不受影响
使用如下:
// [1, 2, 3]
// 将大于1的元素过滤出来 -> [2, 3]
arr1.filter(val => val > 1)
十四、map()
函数原型:T[] map(mapFunc)
作用:将元素按照指定方式进行映射,映射结果放到新数组并返回
使用如下:
// [1, 2, 3]
// 将每一个元素乘10,放到新数组中 -> [10, 20, 30]
arr1.map(val => val * 10)
十五、find()
函数原型:T find(conditionFunc)
作用:找到第一个满足条件的元素
使用如下:
// [1, 2, 3]中找到大于1的第一个元素 -> 2
let number = arr1.find(val => val > 1)
十六、findIndex()
函数原型:T findIndex(conditionFunc)
作用:找到第一个满足条件元素的下标
使用如下:
// [1, 2, 3]中找到2第一次出现的下标 -> 1
let number = arr1.findIndex(val => val === 2)
十七、every()
函数原型:boolean every(conditionFunc)
作用:判断所有元素是否都满足条件
使用如下:
// 判断[1, 2, 3]中是否所有元素都大于0 -> true
arr1.every(val => val > 0)
十八、some()
函数原型:boolean some(conditionFunc)
作用:判断是否有元素满足条件
使用如下:
// 判断[1, 2, 3]中是否有元素小于0 -> false
arr1.some(val => val < 0)
十九、reduce()
函数原型:T reduce(computedFunc)
作用:从左往右让数组中所有元素都按照这套规则计算,求出结果并返回
使用如下:
// 让[1, 2, 3]中所有元素依次相加 1 + 2 + 3 -> 6
arr1.reduce((v1, v2) => v1 + v2)
实际上是先让前两个元素计算得到res,再将res作为第一个参数,后面的元素作为第二个参数继续计算,一直到后面没有元素可以计算为止