js数组常用遍历方法总结

js遍历数组方法总结

方便我的同事葬爱家族龙少上班查阅特写此文章

  1. forEach 无返回值, 会改变原数组, break和return不会终止遍历
  // item 数组元素 index 索引 arr 当前遍历的数组
  let arr = ["2112","127","203","99","564"]
  arr.forEach(item,index,arr) {
  	   arr[index] = arr[index] + 1
  }
  console.log(arr)  
  // 输出:["2113","128","204","100","565"]
  1. filter 过滤数组, return true将元素返回给新数组, 不会改变原数组
  let arr = ["2112","127","203","99","564"]
  let newArr = arr.filter( item => item > 500)
  console.log(newArr)  
  // 输出:["2112","564"]
  1. find查找元素,return true终止迭代并返回当前元素, 不会改变原数组
  let arr = ["2112","127","203","99","564"]
  let num = arr.find( item => item < 200)
  console.log(num)	
  // 输出:127
  1. findIndex查找索引, return true终止迭代并返回当前元素下标,不会改变原数组
  let arr = ["2112","127","203","99","564"]
  let index = arr.findIndex( item => item < 200)
  console.log(index) 
  // 输出:1
  1. some 只要有一个满足条件则返回布尔值true, 并终止迭代
  let arr = ["2112","127","203","99","564"]
  let bool = arr.some( item => item > 2000)
  console.log(bool) 
  // 输出:true
  1. every 只要有一个不满足条件则返回布尔值false, 并终止迭代
  let arr = ["2112","127","203","99","564"]
  let bool = arr.every( item => item < 500 )
  console.log(bool)
  // 输出:false
  1. reduce 对数组中的内容汇总, 不会改变原数组
  let arr = [
     {
        name: "穿过的袜子",
     	price: 145.98,
     	num: 10
     },
      {
        name: "玛莎拉蒂",
     	price: 27.50,
     	num: 5
     },
      {
        name: "蜜雪冰城柠檬水",
     	price: 99.00,
     	num: 3
     },
   ]
  // 第一次循环adder默认为reduce方法的第二个参数0
  // 第二次循环adder为第一次循环return的返回值 1459.8
  // 第三次循环adder为第二次循环return的返回值 1597.3
  // 第三次循环结束最终返回总价为:1894.3
  // return 不返回值, 下一次循环的adder则为undefined
  let total = arr.reduce((adder, item, index, arr) => {
	 return adder + item.price * item.num
  },0)
  console.log(total) // 1894.3
  1. map 对数组中个每个元素都进行修改统一操作
  let newArr = arr.map( (item, index)=> {
      return {
        name: "哈哈" + index,
        price: 100
      }
    })
 console.log(newArr);
 [{name: "哈哈0", price: 100}, {name: "哈哈1", price: 100}, {name: "哈哈2", price: 100}]
  1. for of 循环 v为元素 arr为遍历数组
 for(let v of newArr) {
	break 		   // 可以结束循环
 	console.log(v) // 数组元素 {name: "哈哈0", price: 100}
 } 

总结:有返回值的数组方法,一般情况下都不会影响原数组

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
JavaScript数组遍历有多种常用方法,例如for循环、forEach方法、map方法、reduce方法等。我们可以通过性能分析对比它们的效率。 首先是for循环,它是最基本的遍历方式。通过使用索引来访问数组元素,可以在遍历过程中直接对元素进行操作。这种方法是最快的,因为它没有额外的函数调用开销,并且可以灵活地控制遍历过程。 其次是forEach方法,它是ES5中引入的数组方法之一。它提供了一种简洁易懂的遍历方式,可以通过回调函数来处理每个元素。然而,forEach方法不能中途跳出循环,也不能直接修改原数组。因此,如果需要在循环中进行复杂的操作,它可能会导致一些性能上的损失。 再次是map方法,它也是ES5中的数组方法之一。它可以通过回调函数对数组中的每个元素进行操作,并将结果存储在一个新的数组中返回。map方法会创建一个新的数组,因此在性能方面相对较低。如果只需要遍历数组而不需要返回新的数组,推荐使用forEach方法,它更高效。 最后是reduce方法,它也是ES5中的数组方法之一。它可以通过回调函数对数组中的每个元素进行累积操作,最终返回一个累积。reduce方法是一种非常灵活且强大的遍历方式,但相对而言性能相对较低。如果只需要遍历数组而不需要累积,使用forEach方法会更高效。 综上所述,for循环是性能最高的遍历方式,但不如其他方法简洁易懂。根据实际需求来选择合适的遍历方法,可以在性能和代码可读性之间找到平衡点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值