js数组的方法合集

一、操作数组中的项

1、push&pop

let arr = [1,2,3,4,5]
arr.push(6)    //arr变为[1,2,3,4,5,6],返回值为6
arr.pop()       //arr变为[1,2,3,4,5],返回值为6

2、shift&unshift

let arr = [1,2,3,4,5]
arr.shift()    //arr变为[2,3,4,5],返回值为1
arr.unshift(8)       //arr变为[6,2,3,4,5],返回值为5(数组长度)

3、concat

let arr = [1,2,3,4,5]
let newarr = arr.concat(6,[7,8],[[9,10]])  //不改变原数组
console.log(newarr) //[1, 2, 3, 4, 5, 6, 7, 8, [9,10]]  //会展开一层数组

4、slice&splice
slice()方法接收一个或两个参数,表示要返回项的起始和结束位置,不改变原数组,返回从起始到结束位置的所有项,不包括结束项,若参数为负数则用数组长度加上该数来确定位置。

let arr = [1,2,3,4,5]
let newarr = arr.slice(1,3)
console.log(newarr)   //[2,3]

splice()方法可以删除、插入、替换数组中的项
删除时提供两个参数,要删除的第一项位置和要删除的项数,会改变原数组,返回删除的项。

let arr = [1,2,3,4,5]
let newarr = arr.splice(1,3)
console.log(arr)     //[1,5]
console.log(newarr)   //[2,3,4]

插入时提供三个参数,起始位置、0(要删除的项数)、要插入的项。会改变原数组,返回删除的项。

let arr = [1,2,3,4,5]
arr.splice(1,0,6,7,8)
console.log(arr)     //[1, 6, 7, 8, 2, 3, 4, 5]

替换时提供三个参数,起始位置、要删除的项数、要插入的项。会改变原数组,返回删除的项。

let arr = [1,2,3,4,5]
let newarr  =arr.splice(1,3,6,7,8)
console.log(arr)     //[1, 6, 7, 8, 5]
console.log(newarr)  //[2, 3, 4]

5、indexOf&lastIndexOf
这两个方法提供两个参数,要查找的项和查找起点位置的索引(可选)。

let arr = [1,2,3,4,2]
let index  =arr.indexOf(2)
let lastindex = arr.lastIndexOf(2)
console.log(index)     //1
console.log(lastindex) //4

6、sort&reverse

sort()方法默认会对数组中每一项调用toString()方法,然后比较得到的字符串。

let arr = [13,2,6,8,4]
arr.sort()
console.log(arr)    //[13, 2, 4, 6, 8]

由于默认是按照字符串排序,如果我们想按照数值排序,可以传入一个比较函数作为参数,比较函数中return正数则要进行交换。

let arr = [13,2,6,8,4]
arr.sort((a,b)=>{return a-b})
console.log(arr)    //[2, 4, 6, 8, 13]

reverse()方法会反转数组顺序

let arr = [13,2,6,8,4]
arr.reverse()
console.log(arr)    //[4, 8, 6, 2, 13]

二、遍历操作方法

1、forEach
对数组中每一项运行回调函数,没有返回值,改变原数组,不能终止(break、return失效)。

let arr = [13,2,6,8,4]
arr.forEach((item,index,array)=>{
    array[index] = item * 2
})
console.log(arr)    //[26, 4, 12, 16, 8]

2、map
对数组中每一项运行回调函数,返回操作后的新数组,不改变原数组

let arr = [13,2,6,8,4]
let newarr = arr.map((item,index,array)=>{
    return item * 2
})
console.log(newarr)    //[26, 4, 12, 16, 8]

3、filter
对数组中每一项运行回调函数,返回该函数返回true的项组成的数组,不改变原数组

let arr = [13,2,6,8,4]
let newarr = arr.filter((item,index,array)=>{
    return item > 2
})
console.log(newarr)    //[13, 6, 8, 4]

4、reduce
接收两个参数,分别为回调函数和初始值,其中回调函数接收四个参数,对数组中每一项运行回调函数,这个函数返回的值会作为第一个参数传给下一项,从而达到累加的效果,返回累加的结果,不改变原数组。

let arr = [13,2,6,8,4]
let res = arr.reduce((prev,cur,index,array)=>{
    return prev+cur
},0)
console.log(res)    //33

5、every&some
对数组中每一项运行回调函数,every是该函数对每一项都返回true才返回true,some是该函数对任一项返回true就返回true。

let arr = [13,2,6,8,4]
let res = arr.every((item,index,array)=>{
    return item > 2
})
console.log(res)    //false
let arr = [13,2,6,8,4]
let res = arr.some((item,index,array)=>{
    return item > 2
})
console.log(res)    //true

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值