数组取极值 为什么需要这个莫名其妙却有用的-1?看不懂这段高人指点的代码
发布于 7 年前 作者 qiangqiao 11826 次浏览 来自 官方Issues
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 有什么用,怎么发生作用?

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

1 回复

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

回到顶部