【问题标题】:Calculate Price Range in Javascript在 Javascript 中计算价格范围
【发布时间】:2014-10-31 20:01:25
【问题描述】:

我应该如何使用这些范围计算来使用 JavaScript(不能使用 jQuery)来更改价格:

我找到了这个js fiddle,但它使用了 jQuery。它与我想要实现的非常相似,虽然我没有在其中看到范围代码,只是值。

即:your price : 200 so multiple by 0.23 参考图表。所以如果我有200 的价格,我想得到0.23 的价值。

有没有更简单的方法,然后执行下面的代码?

  if (maxValue <= 100) {
        minvalue = 250
  }

  if (maxValue <= 250) {
        chartMaxY = 500
  ...

还是声明价值?

   var pricerange = [100, 250,, 1000, 2500, 50000, ];


    if (maxValue <= pricerange[i]) {
        minvalue = pricerange[i];

【问题讨论】:

  • 我不明白这个问题。 . .
  • 无论你做什么,确保将所有值乘以 100,做数学运算,然后除以 100。Douglas Crockford 告诉我这样做。
  • jQuery 在这里无关紧要,你不要将它用于这样的事情。
  • 你到底为什么要使用 jQuery 来进行计算呢?你知道 jQuery 到底是什么吗?
  • @godisgood 我需要创建一个 javascript 函数,该函数根据价格的大小确定乘法值。参考这个range calculations

标签: javascript html range calculator


【解决方案1】:

你可以使用两个数组,一个是范围,另一个是你应该得到的值。例如:

var value = 1100; // is between 1000-2500 so we should get 0.20
var chartValue;

var priceRange = [ 100, 250, 1000, 2500, 5000 ];
var priceValue = [ 0.23, 0.12, 0.20, 0.19, 0.19 ];

for(range in priceRange) 
   if (value >= priceRange[range]) 
        chartValue = priceValue[range];

alert(chartValue)// Gives 0.20

这是有效的,因为当检测到更高的范围时会分配一个新值。例如上例中发生的情况是这样的:大于 100 设置 chartValue 为0.23,高于250 设置 chartValue 为0.12,高于1000 设置 chartValue 为0.20。但它不大于2500,所以这将是它最后一次更改。请注意,这是如何设置的,我们只使用了一个 greater-than 比较,并且重新设置值会产生我们想要的范围。

【讨论】:

  • 我写了 15 种不同的 if 语句,但它不起作用。谢谢
【解决方案2】:

我可能会编写两个带有所有硬编码值的函数。

function fiveYear (price) {
  if (price < 100) {
    throw new Erorr('price must be at least 100')
  } else if (price > 100 && price < 250) {
    return 0.23

  // .. etc ..
}

如果值会经常更改,您需要提出更通用的解决方案,例如将值放入数据库中。

【讨论】:

  • 是的,它正在离线运行(实际上是在 ipad 上),所以我不能使用数据库。我明白你的意思。我会试试谢谢你。
  • 为什么不使用带循环的数组?
  • @SpencerWieczorek 循环今天绝对干净。业务逻辑通常会变得混乱,所以我什至不打扰。肯定会进行清洁测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
相关资源
最近更新 更多