常用的数组方法

1. push

向数组的尾部添加一个或多个元素,返回值是添加元素后的新数组的长度

const arr1=[1,2,3,4]
const newarr=arr1.push(26,89)
console.log(arr1)//[1,2,3,4,26,89]
console.log(newarr)//arr1添加元素后的长度为6

打印结果:

 2.unshift 

向数组的头部添加一个或多个元素,返回值是添加元素后的新数组的长度,和前面push用法一样,只不过一个是在数组尾部添加,一个是在数组头部添加。

const arr1=[1,2,3,4]
const newarr=arr1.unshift(26,89,66)
console.log(arr1)//[26,89,66,1,2,3,4]
console.log(newarr)//arr1添加元素后的长度为7

3.pop 

删除数组的最后一个值,返回值为删除的值,如果数组为空,则返回undefined

const arr1=[1,2,3,4,55,66]
const newarr=arr1.pop()
console.log(arr1)//[1,2,3,4,55]
console.log(newarr)//66

//数组为空
const arr2=[]
const newarr2=arr2.pop()
console.log(arr2)//[]
console.log(newarr2)//undefined

打印结果

4. shift

删除数组的第一个值,返回值为删除的值,如果数组为空,则返回undefined,和前面pop 的使用方法一样,只不过一个是删除最后一个值,一个是删除第一个值

const arr1=[1,2,3,4,55,66]
const newarr=arr1.shift()
console.log(arr1)//[1,2,3,4,55]
console.log(newarr)//1

//数组为空
const arr2=[]
const newarr2=arr2.shift()
console.log(arr2)//[]
console.log(newarr2)//undefined

5.reverse 

将数组倒序,就是把数组内容反转,返回结果就是反转的数组

const arr1 = [1, 2, 3, 4, 55, 66]
const newarr = arr1.reverse ()
console.log(arr1)// [66, 55, 4, 3, 2, 1]
console.log(newarr)// [66, 55, 4, 3, 2, 1]

 打印结果:

6.sort 

对数组的元素进行排序,分为字母排序和数字排序,默认为字母升序排序,返回结果为排过序的数组,要字母降序排序,可以将升序过的数组再使用我们前面提到的reverse方法。

字母排序:

const arr1 = [1, 4, 55, 25, 2, 3, 66]
const newarr = arr1.sort()//默认字母升序
console.log(arr1)// [1,2,25,3,4,55,66]
console.log(newarr)// [1,2,25,3,4,55,66]

//字母降序
const newarr2 = arr1.reverse()
console.log(arr1)//[66, 55, 4, 3, 25, 2, 1]
console.log(newarr2)//[66, 55, 4, 3, 25, 2, 1]

字母升序排序,25会排在3的前面是因为2小于3,按照unicode编码进行排序的。

数字排序:

const arr1 = [1, 4, 55, 25,  2, 3, 66]
const newarr = arr1.sort(function(a,b){return a-b})//return a-b为升序,降序为return b-a
console.log(arr1)// [1,2,3,4,25,55,66]
console.log(newarr)// [1,2,3,4,25,55,66]

 sort方法需要传入一个回调函数,回调函数有两个实参,数组的元素会两两作为参数传入进行比较,如果返回值大于0则进行交换,否则不交换。

7.splice 

从指定位置添加或删除元素,有多个参数,第一个参数(必需的)为添加或删除元素开始的位置,必须为数字,代表的是数组的下标(注意数组的小标从0开始哦),第二个参数代表删除的元素的个数,如果不指定此参数,则会删除从我们传入的第一个参数开始到原数组结尾的所有元素,可以为0,第三及之后的参数代表我们需要添加的元素。方法的返回值为我们删掉的元素组成的数组

const arr1 = [1, 4, 55, 25, 2, 3, 66]
const newarr = arr1.splice(1)//只传入了第一个参数,则会删除从数组下标为1开始到原数组结尾的所有元素
console.log(arr1)//[1]
console.log(newarr)// [4, 55, 25, 2, 3, 66]


const arr2 = [1, 4, 55, 25, 2, 3, 66]
const newarr2 = arr2.splice(1,2)//删除从数组下标为1开始的2个元素
console.log(arr2)//[1, 25, 2, 3, 66]
console.log(newarr2)// [4, 55]


const arr3 = [1, 4, 55, 25, 2, 3, 66]
const newarr3 = arr2.splice(1,0,77,88)//删除0个元素,从数组下标为1开始添加77,88
console.log(arr3)//[1, 77, 88, 4, 55, 25, 2, 3, 66]
console.log(newarr3)// []

8.join

把数组中的所有元素都转换为一个字符串,再通过我们传入的参数连接起来,默认的连接符为逗号(,),返回结果为新连接起来的字符串,此方法不改变原数组

const arr1 = [1, 2, 3, 4, 55, 66]
const newarr = arr1.join('-')
console.log(arr1)//[1,2,3,4,55,66]
console.log(newarr)//1-2-3-4-55-66

 打印结果:

9.concat

拼接数组,返回值为拼接成的新数组,此方法不改变原数组

const arr1 = [1, 4, 55, 25, 2, 3, 66]
const arr2 = [77,88]
const arr3 = ['100',256]
const newarr = arr1.concat(arr2,arr3)
console.log(arr1)
console.log(newarr)

打印结果

10.slice 

截取数组中的元素,有两个参数,第一个代表截取开始的地方,第二个代表截取结束的地方,两个参数都可以负数,负数就是从结束的地方开始算,比如slice(-4,-1)就是指从倒数第四个开始,倒数第一个结束。此方法的返回值为截取到的元素,返回值包含开始截取的元素,不包含截取结束的元素。此方法不改变原数组。

const arr1 = [1, 4, 55, 25, 2, 3, 66]
const newarr = arr1.slice(1,3)//从数组下标为1开始到从数组下标为3的元素,不包含下标为3的
console.log(arr1)//[1, 4, 55, 25, 2, 3, 66]
console.log(newarr)//[4, 55]

const newarr2 = arr1.slice(1)//截取数组下标为1开始到数组结束的所有元素
console.log(newarr2)// [4, 55, 25, 2, 3, 66]

const newarr2 = arr1.slice(-4,-2)//从数组倒数第4个截取到倒数第2个,不包含倒数第2个
console.log(newarr2)// [25, 2]

const newarr2 = arr1.slice(-3)//从数组倒数第3个截取到数组末尾
console.log(newarr2)// [2, 3, 66]

11.find

返回满足条件的第一个元素,如果都不满足则返回undefined 。find方法接收一个回调函数,此回调函数可以有三个参数,第一个参数代表当前元素,是必须的,第二个参数代表当前元素的索引值,可选的,第三个参数代表当前元素所属的数组。此方法不改变原数组,不会对空数组进行检测。

const arr1 = [1, 4, 55, 25, 2, 3, 66]
const newarr = arr1.find(function (number,index,array) {
    console.log(number,index,array)
    return number > 25
})
console.log(arr1)
console.log(newarr)

打印结果: 

 找到第一个符合元素的,之后的元素便不会再调用执行函数

12.every

检测数值中的每个元素是否都符合条件。是就返回true,否则返回false,此方法接收一个回调函数,此回调函数可以有三个参数,三个参数的含义和上面find方法的三个参数一样。此方法不改变原数组,不会对空数组进行检测。

const arr1 = [12, 4, 55, 25, 2, 3, 66]
const newarr = arr1.every(function (number,index,array) {
    console.log(number,index,array)
    return number > 10
})
console.log(arr1)
console.log(newarr)

const newarr1 = arr1.every(function (number,index,array) {
    console.log(number,index,array)
    return number > 1
})
console.log(newarr1)

打印结果

一旦找到不符合元素的,就返回false,之后的元素便不会再调用执行函数。全部元素满足条件时,才会返回true。

13.map

map方法会返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,此方法接收一个回调函数,此回调函数可以有三个参数,三个参数的含义和上面find方法的三个参数一样。此方法不改变原数组,不会对空数组进行检测。

const arr1 = [12, 4, 55, 25, 2, 3, 66]
const newarr = arr1.map(function (number,index,array) {
    console.log(number,index,array)
    return number>45
})
console.log(arr1)
console.log(newarr)


const newarr1 = arr1.map(function (number,index,array) {
    console.log(number,index,array)
    return number*2
})
console.log(newarr1)

打印结果

此方法会检测数组中的每一个元素,满足条件则返回true,不满足则返回false。

 14.forEach

返回值为undefined,此方法接收一个回调函数,此回调函数可以有三个参数,三个参数的含义和上面find方法的三个参数一样。此方法会遍历数组的所有元素,不会改变原数组,空数组是不会执行回调函数。

let sum=0
const arr1 = [12, 4, 55, 25, 2, 3, 66]
const newarr = arr1.forEach(function (number, index, array) {
      console.log(number, index, array)
      sum += number 
})
console.log(arr1)
console.log(sum)

打印结果

 forEach方法无法在遍历过程中使用break或return来提前结束循环。如果需要提前结束循环,可以考虑使用其他方法,例如for循环。

前面七个方法push、unshift、pop、shift、reserve、sort、splice均会改变原数组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值