js数组map、filter、forEach、some、every用法

数组迭代方法
1.some()迭代数组每一项,只要有一项符合条件就返回true,否则返回false。
2.every()迭代数组每一项,只有每一项都符合添加就返回true,否则返回false。
3.map()迭代数组每一项,可以给特定的条件,返回新的数组。
4.filter()迭代数组每一项,可以筛选出满足条件的项,返回新的数组。
5.forEach()迭代数组每一项,没有返回项。
6.find()返回数组满足条件的第一个元素。

下面我用五个例子说明其用途

1).some()迭代数组每一项,只要有一项符合条件就返回true,否则返回false。

  // 定义一个数组
  let arr = new Array(
      { name: 'Bob', age: 18, wage:3000},
      { name: 'Peter', age: 16, wage: 4000 },
      { name: 'Lynn', age: 28, wage: 5000 },
      { name: 'Jack', age: 38, wage: 6000 }
  )

  // some()迭代数组,数组有一项满足条件就返回true
  let value1 = arr.some(item => item.age >= 30)
  console.log("some调试结果,是否有大于30岁的员工:"+ value1)
  //some调试结果,是否有大于30岁的员工:true

2).every()迭代数组每一项,只有每一项都符合添加就返回true,否则返回false。

  // 定义一个数组
  let arr = new Array(
      { name: 'Bob', age: 18, wage:3000},
      { name: 'Peter', age: 16, wage: 4000 },
      { name: 'Lynn', age: 28, wage: 5000 },
      { name: 'Jack', age: 38, wage: 6000 }
  )

  // every()迭代数组,数组所有项满足条件,就返回true
  let value1 = arr.every(item => item.age >= 12)
  let value2 = arr.every(item => item.age >= 30)
  console.log("every调试结果,是否所有员工大于12岁:" + value1)
  console.log("every调试结果,是否所有员工大于30岁:" + value2)
//every调试结果,是否所有员工大于12岁:true
//every调试结果,是否所有员工大于30岁:false

3).map()迭代数组每一项,可以给特定的条件,返回新的数组。

  // 定义一个数组
  let arr = new Array(
      { name: 'Bob', age: 18, wage:3000},
      { name: 'Peter', age: 16, wage: 4000 },
      { name: 'Lynn', age: 28, wage: 5000 },
      { name: 'Jack', age: 38, wage: 6000 }
  )
  // map给数组每一项设置特定条件,返回一个新数组
  let arr1 = arr.map(item => {
     return {
          name: item.name,
          wage: item.wage + 500
     }
  })
  console.log(arr1)
  /*
	 { name: 'Bob', age: 18, wage:3500},
     { name: 'Peter', age: 16, wage: 4500 },
     { name: 'Lynn', age: 28, wage: 5500 },
     { name: 'Jack', age: 38, wage: 6500 }
  */

4.filter()迭代数组每一项,可以筛选出满足条件的项,返回新的数组。

  
   let arr = new Array(
      { name: 'Bob', age: 18, wage:3000},
      { name: 'Peter', age: 16, wage: 4000 },
      { name: 'Lynn', age: 28, wage: 5000 },
      { name: 'Jack', age: 38, wage: 6000 }
  )
 // 大于20岁大员工
  let arr1 = arr.filter(item => item.age >20)
  console.log(arr1)
  /*
	 [
	  { name: 'Lynn', age: 28, wage: 5000 },
      { name: 'Jack', age: 38, wage: 6000 }	
	]
  */

5.forEach()迭代数组每一项,没有返回项。

   let arr = new Array(
      { name: 'Bob', age: 18, wage:3000},
      { name: 'Peter', age: 16, wage: 4000 },
      { name: 'Lynn', age: 28, wage: 5000 },
      { name: 'Jack', age: 38, wage: 6000 }
  )
  // 老板说每人薪水涨300
   let arr1 = arr.forEach(item => {
    item.wage += 300
  })
  console.log(arr)
  console.log("arr1是"+arr)
  /*
	[  
	  { name: 'Bob', age: 18, wage:3300},
      { name: 'Peter', age: 16, wage: 4300 },
      { name: 'Lynn', age: 28, wage: 5300 },
      { name: 'Jack', age: 38, wage: 6300 }
   ]
*/
//arr1是undefined

6.find()返回数组满足条件的第一个元素

let arr = new Array(
      { name: 'Bob', age: 18, wage:3000},
      { name: 'Peter', age: 16, wage: 4000 },
      { name: 'Lynn', age: 28, wage: 5000 },
      { name: 'Jack', age: 38, wage: 6000 }
  )
  const item = arr.find(item => item.name === 'Bob')
  console.log(item)
  // { name: 'Bob', age: 18, wage:3000}

思考与总结

上面五个数组迭代方法各自有各自的功能,具体业务场景可以灵活选择

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值