收藏
回答

数组取极值 为什么需要这个莫名其妙却有用的-1?看不懂这段高人指点的代码

Page({
  data: {
    list: [
      { menu: [{ size: [{ price: 6 }, { price: 11 }] }, { size: [{ price: 8 }, { price: 9 }] }] },
      { menu: [{ size: [{ price: 7 }, { price: 12 }] }, { size: [{ price: 9 }, { price: 7 }, 
        { price: 14 }] },{ size: [{ price: 8 }, { price: 9 }] }] },
      { menu: [{ size: [{ price: 666 }] }] }
    ],
  },

  onLoad() {
    var list=this.data.list
    for(var i=0;i<list.length;i++){
      for(var j=0;j<list[i].menu.length;j++){
        var minPrice = -1
        for(var k=0;k<list[i].menu[j].size.length;k++){
          if(minPrice>=list[i].menu[j].size[k].price || minPrice == -1){
            minPrice = list[i].menu[j].size[k].price
          }     
        }
        list[i].menu[j].size.push({minPrice:minPrice})
      }
    }
    console.log(list)
})

需求:list.menu.size里的price分别取最小值,并将这个值以 { minPrice : 最小值 } 的形式插入到size里。

问题:经过高人指点,代码如上,虽然运行正确,但是我始终不明白这个 minPrice = -1 有什么用,怎么发生作用?

(事实就是我看不懂这段代码)请大佬指点一翻。。。谢谢!

最后一次编辑于  2019-12-31
回答关注问题邀请回答
收藏

1 个回答

  • 冯唐木
    冯唐木
    2019-12-31

    赋了个初值并且确保你第一次能满足if条件

    2019-12-31
    赞同
    回复 7
    • 阿浩🐔 。。。
      阿浩🐔 。。。
      2019-12-31
      谢谢回答!可是-1怎么会比这里的price要大呢,这个判断岂不是没有意义?/(ㄒoㄒ)/~~
      2019-12-31
      回复
    • one for all
      one for all
      2019-12-31回复阿浩🐔 。。。
      || minPrice == -1 还有这个呢
      2019-12-31
      回复
    • 冯唐木
      冯唐木
      2019-12-31回复阿浩🐔 。。。
      你后面不是有个短路运算符或么 || minPrice == -1
      2019-12-31
      回复
    • 阿浩🐔 。。。
      阿浩🐔 。。。
      2019-12-31回复one for all
      谢谢回答!我测试过 --minPrice>=list[i].menu[j].size[k].price-- 也是需要的。。。请问能帮忙解释一下minPrice>=list[i].menu[j].size[k].price和minPrice==-1吗?谢谢,我用了但是搞不懂这个原理。。。
      2019-12-31
      回复
    • 阿浩🐔 。。。
      阿浩🐔 。。。
      2019-12-31回复冯唐木
      是啊,就是这两个判断我都搞不懂...
      2019-12-31
      回复
    查看更多(2)
登录 后发表内容
问题标签