数组常用方法

总结一些数组常用方法

  • push
    向数组后添加元素,返回值为数组的length。会改变原数组
let arr = [1, 2, 3]
let res = arr.push(4)
console.log(res) // 4
  • pop
    删除数组尾部的元素,返回值为删除的元素。会改变原数组
let arr = [1, 2, 3]
let res = arr.pop()
console.log(res) // 3
  • shift
    删除数组的头部,返回值为删除的元素。会改变原数组
  • unshift
    向数组头部添加元素,返回值为数组的length。会改变原数组
  • sort
    将数组排序,排序规则看返回值。会改变原数组
let arr = [10, 4, 35]
let res = arr.sort((a, b) => a - b)
console.log(res) // [4, 10,35]
let res1 = arr.sort((a, b) => b - a)
console.log(res1) // [35, 10, 4]
  • reverse
    反转数组,会改变原数组
let arr = [1, 2, 3]
let res = arr.reverse()
console.log(res) // [3, 2, 1]
  • join
    把数组中所有元素放入一个字符串,元素通过指定分隔符进行分割
let arr = ['ellie', 'harry', 'love']
let res = arr.join('123')
console.log(res) // ellie123harry123love
  • concat
    合并两个或多个数组,不改变原有数组,返回新数组
let arr = ['ellie', 'harry', 'love']
let res = arr.concat([1],3,[7, 8])
console.log(res) // ['ellie', 'harry', 'love', 1, 3, 7, 8]
  • splice
    通过删除 或者替换现有元素 或者原地添加新的元素修改数组,会改变原数组
    splice(a, b, c,…)
    a:指定起始索引值
    b:指定要删除多少个值
    c:c以及以后的值都是要插入的值
let arr = ['ellie', 'harry', 'love']
let res = arr.splice(1, 1, 'hello', 'world')
console.log(res) // 

splice有异议

  • slice
    截取数组,第一个参数是起始下标,第二个参数是结束下标的前一位
let arr = ['ellie', 'harry', 'love']
let res = arr.slice(1, 2)
console.log(res) // ['harry']
  • indexOf
    查找数组中是否存在某个值,如果存在返回下标,反之返回-1
  • lastIndexOf
    与indexOf相同,不过返回的是指定元素在数组汇总最后一个的索引下标
  • toString
    数组转换为字符串
let arr = ['ellie', 'harry', 'love']
let res = arr.toString()
console.log(res) // ellie,harry,love
  • reduce
    接收一个参数作为累加器,数组中的每个值从左到右开始缩减,最终计算为一个值
    array.reduce(callback(total, currentValue, currentIndex, arr), initialValue)
    total:必需。初始值,或计算结束后的返回值
    currentValue:必需。当前元素
    currentIndex:非必需。当前元素的索引
    arr:非必需。当前元素所属的数组对象,本身
    initialValue:作为第一次调用callback函数时的第一个参数的值,如果没有提供初始值,则将使用数组中的第一个元素
let arr = [1, 2, 3]
let res = arr.reduce((total,cur)=>{
		return total + cur
	})
console.log(res) // 6
  • every
    用于检测数组所有元素是否都符合指定条件,返回值为boolean,数组中必须全部值元素都满足条件才返回true,否则false
let arr = [1, 2, 3]
let res = arr.every(item => item > 0)
console.log(res) // true
let res2 = arr.every(item => item > 2)
console.log(res2) // false
  • some
    跟every相反,只要有一项满足,就返回true
  • filter
    用于过滤数组内的符合条件的值,返回值为满足条件的数组对象,如果没有一个符合条件,返回空数组。会创建新数组
let arr = [1, 2, 3]
let res = arr.filter(item=>{
		return total + cur
	})
console.log(res) // 6
  • map
    将数组中元素依次传入方法中,并将方法的返回结果组成新的数组返回,会创建新数组
let arr = [1, 2, 3]
let res = arr.map(item=>{
		return item + 3
	})
console.log(res) // [4, 5, 6]
  • forEach
    方法对数组的每个元素执行一次给定的函数,返回值为undefined
let arr = [1, 2, 3]
let res = arr.forEach(item=>{
		return item + 3
	})
console.log(res) // undefined

着重点在于让数组的每一项做点什么事儿

let arr = [1, 2, 3]
let res = arr.forEach(item=>{
		console.log(item + 3)  // 4 5 6
	})
  • find
    该方法返回数组中满足提供的测试函数的第一个元素的值
let arr = [3, 4, 5]
let res = arr.find(item => { item > 3})
console.log(res) // 4
  • findIndex
    该方法返回数组中满足提供的测试函数的第一个元素的数组下标
  • flat
    该方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回
let arr = [3, 4, 5, [7, 3, [5]]]
let res = arr.flat()
let res2 = arr.flat(1)
console.log(res) // [3, 4, 5, 7, 3, 5]
console.log(res2) // [3, 4, 5, 7, 3, [5]]
  • fill
  • 该方法用一个固定值填充一个数组中从起始索引到终止索引内到全部元素。会改变原数组
    array.fill(value, start, end)
    value:必需。要填充的值
    start:非必需。开始填充的下标
    end:非必需。结束填充的下标+1
let arr = [3, 4, 5, 7]
let res = arr.fill(3)
let res2 = arr.fill(3, 2 ,4)
console.log(res) // [3, 3, 3, 3]
console.log(res2) // [3, 4, 3, 3]
  • includes
  • 该方法用来判断一个数组是否包含一个指定的值,如果是则返回true,否则返回false
    第一个参数
let arr = [3, 4, 5, 7]
console.log(arr.includes(3))  // true

可以从指定位置进行判断

let arr = [3, 4, 5, 7]
console.log(arr.includes(3, 1))  // false。从下标为1的位置以后开始比较
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值