gpt4 book ai didi

javascript - 从对象数组中检查仪表

转载 作者:行者123 更新时间:2023-11-28 01:58:15 24 4
gpt4 key购买 nike

我有一个像这样的对象数组

var json = [{"price":"30.00","meter":"70"},{"price":"20.00","meter":"130"},{"price":"10.00","meter":"170"}];

如何检查这之间的数量并计算价格。我写了循环,但它不能正常工作。

var mQty = 2.52;
var jCnt = json.length;
//alert(jCnt);
for (var j = 0; j < jCnt - 1; j++) {
nextj = j + 1;
//alert(nextj;
first = json[j].meter;
if (json[nextj].meter != '') {
second = json[nextj].meter - 1;
} else {
second = '';
}
if (mQty >= first && mQty <= second) {
//bettween meter from json obj
alert('if condition');
alert(json[j].price);
} else {
//under 70 meter
alert('else condition');
alert('40.00');
}
}

最佳答案

我想我现在明白了这个问题。你们的价格是每米的价格(我猜),订购的东西米数越多,每米的价格就越便宜。您想要找到给定长度的匹配价格。

由于您的价格按升序排序,因此逻辑非常简单:

  1. 如果数量/长度小于第一个条目所需的数量/长度,则使用默认价格。
  2. 否则使用具有相同或较小数量/长度的最后一个元素的价格。

示例:

var price;
if (qty < prices[0].meter) {
price = defaultPrice;
}
else {
for (var i = 1; i <= prices.length; i++) {
price = prices[i - 1].price;
if (prices[i] && prices[i].meter > qty) {
break;
}
}
}

如果将默认价格作为第一个元素添加到数组中:

var prices = [{price: defaultPrice, meter: 0}, ...];

那么你可以省略整个 if...else 语句:

var price;
for (var i = 1; i <= prices.length; i++) {
price = prices[i - 1].price;
if (prices[i] && prices[i].meter > qty) {
break;
}
}

关于javascript - 从对象数组中检查仪表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18784003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com