javascript中数组常用的方法总结
Array.push()
在数组的尾部添加一个元素
例子:
let arr = [1,2,3,4]
arr.push(5)
arr:[1,2,3,4,5] //得到的结果
Array.unshift()
在数组的头部添加一个元素
例子:
let arr = [1,2,3,4]
arr.unshift(5)
arr : [5,1,2,3,4] //得到的结果
Array.pop()
在数组的尾部删除一个元素
例子:
let arr = [1,2,3,4]
arr.pop(5)
arr : [1,2,3] //得到的结果
Array.shift()
在数组的头部删除一个元素
例子:
let arr = [1,2,3,4]
arr.shift(5)
arr : [2,3,4] //得到的结果
Array.splice( 要操作元素的下标 , 删除的个数 , 添加的元素…)
在数组的任意位置添加或删除元素
例子1: 添加元素 在下标为1的元素位置添加8这个元素
let arr = [1 ,2 ,3 , 4]
arr.splice(1 ,0 , 8)
arr : [1,8,2,3,4] //得到的结果
例子2: 删除元素 删除3这个元素
let arr = [1 ,2 ,3 , 4]
arr.splice(2,1)
arr : [1,2,4] //得到的结果
Array.join()
把数组中的每个元素按照指定的符号拼接成一个字符串
例子:
let arr = ['y' , 'y' , 'd' , 's' ]
arr.join('-')
y-y-d-s //得到的结果
Array.reverse()
翻转数组
例子:
let arr = ['y' , 'y' , 'd' , 's' ]
arr.reverse()
[ 's' , ' d' , 'y' , ' y'] //得到的结果
Array.concat()
合并多个数组
例子:
let ary = ['y' , 'y' , 'd' , 's' ]
let ary1 = ['m' , 'm' , 'd']
arr.concat(ary)
['y' , 'y' , 'd' , 's' , 'm' , 'm' , 'd'] //得到的结果
Array.some( 参数是回调函数 )
遍历数组检测数组中是否存在满足条件的元素如果有返回true,如果没有返回false,
特点:找到一个满足条件的就不找了
例子: 数组中是否有大于30的元素
let nums = [18 , 20 ,31 ,40 ]
nums.some( item => {
console.log('a')
item>30
})
// 数组中显然有大于30的元素所以返回true,而在回调中打印的字母a会打印3次,
Array.every( 参数是一个回调函数 )
遍历数组判断数组中每一个元素是否满足条件,只要遇到不满足条件的立马返回false
如果全部满足返回true
例子1:
let nums = [12 , 18 ,23 , 31]
nums.every(item=>{
item>10
})
// 被判断的数组中的元素显然都满足条件,所以返回true
例子2:
let nums = [23 ,12 ,41 , 31]
nums.every(item=>{
item>20
})
// 被判断的数组当遍历到第二个元素的时候就不满足条件了,立马返回false
Array.sort( 回调函数 )
对数组中的元素按照指定的规则进行排序
例子:
let nums = [9 , 3 , 13 , 6 ]
nums.sort( (a,b) => a - b)
//前面的参数 - 后面的参数 表示 从小到大排序
nums.sort(( a, b ) => b - a)
//后面的参数 - 前面的参数 表示 从大到小的排序
Array.forEach( 回调函数 )
对数组进行遍历 回调中可以有俩个参数 item , index
item 可以获取到每一个元素 index可以获取到每个元素对应的下标
例子:
let nums = [ 3 , 5 ,12 ,16]
nums.forEach( (item , index) =>{
console.log(item ,index)
//返回的结果是数组中的每个元素和与之对应的下标
})
Array.filter(回调函数)
对数组进行遍历返回一个所有满足条件元素的新数组
例子:
let nums = [12 ,5 ,9 ,23 ,11]
let nums1= nums.filter( item => item>10)
console.log(nums1)
//返回的值是 [12 ,23 ,11] 的一个新数组
Array.map(回调函数)
回调中有三个参数,第一个参数原数组对应的每个元素,第二个参数原数组对应的每
个元素的下标,第三个参数map 方法调用的数组
例子:
let oldAry = [ 2, 4 , 5 ,3 ,7]
let newAry = oldAry.map( (item , index , ary) =>{
// 可以对原数组中每一个值进行操作
item * 2
//得到的是 [ 4 , 8 , 10 , 6 , 14]
} )
Array.reduce(回调函数 ,初始值 )
初始值可有可无,根据有无初始值,回调函数执行的次数
有初始值,回调函数执行length次
无初始值,回调函数执行数组的length -1次
回调函数的参数
无初始值的时候:
第一个参数 第一次取数组的第一个元素
第二个参数 第一次取数组的第二个元素
第三个参数 第二个参数在数组中的下标
第一个参数的值从第二次开始
他的值来自于上一次回调函数的返回值
如果没有返回undefined
有初始值的时候:
第一个参数 第一次的值来自于给定的初始值
第二个参数 第一次取数组的第一个元素
第三个参数 第二个元素在数组中的下标
第一个参数的值从第二次开始
他的值来自于上一次回调函数的返回值
如果没有返回undefined
数字数组求和不用给初始值,数组中的值是对象求和就需要给初始值零
例子:
let ary = [1 ,5 , 8 ,11]
ary.reduce((sum , item , index ) =>{
sum +=item
// 计算数组的和
} , 0) //这里的0可有可无