Javascript中不改变原数组的方法(2)

不改变原数组的方法有11种,它们分别是(concat, map, filter, join, every, some, indexOf, slice, forEach, reduce, reduceRight),本文将介绍后面5个。

indexOf:数组索引

检测指定元素在数组中第一次出现的位置索引。

arr = [1, 2, 3, 4, 5]
console.log('元素2所在的位置',arr.indexOf(2)) 
//打印结果:"元素2所在的位置,1"

slice:数组切片

返回原数组中指定的数组切片。slice接收两个参数:start(开始的遍历索引),end(结束的遍历索引,实际结果是该索引的前一位)。

let arr = [1, 2, 3, 4, 5]
let arr1 = arr.slice(1, 3)
console.log(arr1) //打印结果:[2, 3]
  • array.slice(n, m),从索引n开始查找到m处(不包含m)
  • array.slice(n) 第二个参数省略,则一直查找到末尾
  • array.slice(0) 原样输出内容,可以实现数组克隆
  • array.slice(-n,-m) slice支持负参数,从最后一项开始算起,-1为最后一项,-2为倒数第二项

forEach:数组遍历

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。回调函数接收3个值:

  • item:遍历项
  • index:遍历项的索引
  • list:数组自身
let arr = ['A', 'B', 'C']
arr.forEach((item, index, list)=>{
    console.log(item, index, list)
})
//'A',0,['A', 'B', 'C']
//'B',1,['A', 'B', 'C']
//'C',2,['A', 'B', 'C']

reduce:数组累计(左)

接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

  • prev: 必需(初始值或者是计算结束后返回的值)
  • cur: 必需(当前元素)
  • index: 可选(当前元素的索引)
  • arr: 可选(当前元素所属的数组对象)
  • init: 可选(传递给函数的初始值)
// 数组各项元素累加,累乘
let arr = [1, 2, 3, 4, 5];
arr.reduce((x, y) => x+y); // 结果15
arr.reduce((x, y) => x*y); // 结果120

reduceRight:数组累计(右)

和上面同理,只是方向变了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值