36-数组遍历的方法 土豆的小案例

    const potatoes = [
      {weight: 100, id: 1},
      {weight: 130, id: 2},
      {weight: 124, id: 3},
      {weight: 137, id: 4},
      {weight: 184, id: 5},
      {weight: 284, id: 6},
      {weight: 190, id: 7},
      {weight: 146, id: 8},
      {weight: 164, id: 9},
      {weight: 283, id: 10},
      {weight: 172, id: 11}
      ]
  1. forEach语句:
    // 刚开始,土豆太小 要催熟 让他们每个+ 100g
    // forEach 替代for循环
    potatoes.forEach((potato, index, arr) => {
      potato.weight += 100
    })
    console.log(potatoes)
  1. map语句
    // 农场主:统计下所有土豆的重量 [200, 230, xxx, xxx, xxx]
    // map 遍历函数中返回什么值,就会将什么值放入返回值 返回值是个新数组
    const potatoesWeight = potatoes.map(potato => potato.weight)
    console.log(potatoesWeight)
  1. reduce语句:
    // 农场主:计算下一共多种
    // 第一参数是上次遍历函数的返回值
    const totalWeight = potatoes.reduce((sum, potato) => sum += potato.weight, 0)
    console.log(totalWeight)
  1. some语句:
    // 收购商:有大土豆吗? wieght >= 250
    // some的返回值是布尔值,如果遍历函数中有一个返回值是true,则结果为true,全部为false,则结果为false
    const hasBigPotato = potatoes.some(potato => potato.weight >= 250)
    console.log(hasBigPotato)
  1. every语句:
    // 收购商:都是大土豆吗? 
    // every 的返回值是布尔值,如果有一个为false 则结果为false 全部为true,则为true
    const isAllBigPotato = potatoes.every(potato => potato.weight >= 250)
    console.log(isAllBigPotato)
  1. fliter语句:
    // 收购商:把大土豆给我捡出来
    // filter返回值是数组 遍历函数返回的为true,则正在遍历的那个potato,放到对应的数组中
    const bigPotatoes = potatoes.filter(potato => potato.weight >= 250)
    console.log(bigPotatoes)
  1. find语句;
    // 顾客:给我挑个大土豆
    // 返回值为第一个符合条件的遍历到的potato 
    const bigPotato = bigPotatoes.find(potato => potato.weight >= 250)
    console.log(bigPotato)
  1. findIndex语句:
    // 顾客:这个土豆是那一排的第几个
    // 返回值为第一个符合条件的遍历到的potato的下标
    const bigPotatoIndex = bigPotatoes.findIndex(potato => potato.weight >= 250)
    console.log(bigPotatoIndex)
dIndex(potato => potato.weight >= 250)
    console.log(bigPotatoIndex)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值