jQuery For 数组上的循环计算

标签 jquery

我需要在 jQuery 中计算里程价格。

例如距离 = 10

关税如下:

----------------------------
| Mileage | Rate           |
----------------------------
|    1    | 1.5            |
----------------------------
|    5    | 3              | 
----------------------------
|   999   | 1.2            | 
----------------------------

这意味着第一英里为 1.50 英镑,第二到第五英里为 3.00 英镑,然后每增加一英里为 1.20 英镑。

这将使 10 英里的旅程 = 19.50 英镑

我真的不知道从哪里开始,因此我们将不胜感激。

我能想到的是:-

var distance = 10

// create a key value pair (although this isn't correct)
var tariff = {mileage: 1, rate: 1.5, mileage: 5, rate: 3, mileage: 999, rate: 1.2};

然后循环关税:-

for (var i = 0; i < distance; i++) {
    //multiply mileage by rate
}

//get sum of values from loop

最佳答案

这是一个选项。

将您的关税对象更改为数组并执行反向 for 循环,使用 i 作为当前英里。

var distance = 10; cost = 0;

var tariff = [{ mileage: 1, rate: 1.5 },{ mileage: 5, rate: 3 },{ mileage: 999, rate: 1.2 }];

for (var i = 0; i < distance; i++) {
  var milePrice = 0;
  for (var j = tariff.length; j--;) {
    if (i < tariff[j].mileage)
      milePrice = tariff[j].rate;
  }
  cost += milePrice;
}

document.write(cost.toFixed(2));

关于jQuery For 数组上的循环计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35494288/

相关文章:

javascript - 如何将数组对象转换为对象数组?

javascript - jquery滑动菜单,默认折叠所有菜单

php - 无需插件即可在表单外上传 Ajax 文件

javascript - 从二维数组中删除多个数组

jquery - zepto.js : Viewport and Lazyload plugins?

javascript - 如何在嵌套的 .each()(s) 中正确使用 "this"? (JQuery)

javascript - 模板无法使用 Backbone.js 加载

javascript - 在 div 滚动上激活另一个 div 的滚动

javascript - jQuery 让完成然后在选项卡失去焦点时停止功能

php - Laravel 5.1 AJAX - 即使我发送 POST 请求也不允许返回 405 GET 方法