使用二分法查找数组区间值

2022-03-30  本文已影响0人  IssunRadiance

项目中的商品是多价格的,根据用户输入的不同数量,需要去匹配当前数量所对应的金额

后台数据返回格式
goods_many_prices: [
  { id: 13601, num: 100, selling_price: "38.00"},
  { id: 13602, num: 200, selling_price: "33.00"},
  { id: 13603, num: 500, selling_price: "26.00"},
  { id: 13604, num: 1000, selling_price: "20.00"},
]

假如用户输入的数量为300的时候,匹配的单价应该为33.00, 因为用户输入的数量还没有到达下个档位,所以取前一个价格

方法
searchSection(arr, val) {
  let result = [];
  for (let item of arr) {
    if (val >= item.num) {
      result.push(item);
    }
  }
  return result[result.length - 1];
},
// 第一个参数传入多价格的数组, 第二个参数传入用户输入的数量
this.searchSection(goods_many_prices, nums);
// 返回结果为
console.log(this.searchSection(goods_many_prices, 600);)
// { id: 13603, num: 500, selling_price: "26.00"}
上一篇下一篇

猜你喜欢

热点阅读