2015-01-16 42 views
0

我在建设一个计算器,以确定孩子的绞痛会持续多久的进程中运行它。采取价值,并通过阵列

我有计算器正常工作只需要它把它得到的值,并通过阵列运行它,并匹配下一个最接近值显示的值,然后将它引用到其关联的一周。

因此,举例来说,如果您选择2周后,每周5个计算回报孩子的绞痛会在0.5614399999999999周结束。然后,您将通过wessel_data数组运行.5614,并发现.5614在第6周和第7周之间。然后,我将接下来的第7周的最接近的一周,并显示它而不是.5614。所以它应该说孩子的绞痛会在.64个星期内结束。现在它已经发现.64我希望它输出相关的星期,以便它会说孩子绞痛会在7周内结束。

这是我写去寻找下一个关联的值,但不能让它开始工作。

function closest (num, wessel_data) { 
       var curr = wessel_data[0]; 
       var diff = Math.abs (num - curr); 
       for (var val = 0; val < wessel_data.length; val++) { 
        var newdiff = Math.abs (num - wessel_data[val]); 
        if (newdiff < diff) { 
         diff = newdiff; 
         curr = wessel_data[val + 1]; 
        } 
       } 
      return curr; 
    } 

我也有一个小提琴,所以你可以看到我在说什么。

Fiddle

+0

如果你在你的问题中发布代码,你应该标记问题是关于什么语言。 – crashmstr

+0

谢谢你会记住这一点 – jfulton

回答

0

我想你想的wessel_data的指标,而不是数据本身。这只是为了比较。所以在这个功能集curr = val + 1。不是wessel_data[val + 1]

你是不是在你的提琴所以它是很难说究竟你正在做使用此功能在所有。

我的建议是,想你想返回给定的输入,并从那里工作落后什么样的价值观。

+0

好吧,我用警报将它添加到小提琴。我创建了另一个数组作为测试,并使用数组和数字调用最接近的函数。我只是想确保我这样做是正确的,因为当我调用curr时它没有显示任何内容。不知道为什么。 – jfulton