使用二分法查找数组区间值
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"}