2015-01-16 38 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