2013-12-15 31 views
0

我無法找到最接近的數字0 它提供了我錯誤的結果.. 你能告訴我如何解決它... 而不是索引如何獲得值結果-0.001 .. 提供以下沒有得到最接近0的結果

http://jsfiddle.net/YYg8U/7/

var myNumbersToSort = [-1, 2, -3, 4, 0.3,1,-0.001]; 
function getClosestToZero(set) { 
    if(0 === set.length) return null; 
    var closest = Math.abs(set[0]), result = 0; 
    for(var i in set) { 
    var next = Math.abs(set[i]); 
    if(closest > next) { 
     result = i; 
     closest = next; 
    } 
    } 
    return result; 
} 

document.getElementById('output').innerHTML = (getClosestToZero(myNumbersToSort)); 

回答

1

好消息小提琴和代碼!

它的工作原理。你錯過了唯一的你的函數返回索引由於-0.001是最接近0它給六,(數組從索引0開始)

我只是嘗試與最接近的返回值,它的工作,嘗試它用不同的數字,你會看到。

與 VAR myNumbersToSort = [-1,2,0.000001,-3,4,0.3,1,-0.001]

它給由於第二元件是0.000001

+0

感謝您的回覆而不是索引如何獲得值作爲結果-0.001 – user3102494

+0

'返回最接近'而不是'返回結果',因爲變量結果對應於索引 – Chris

+0

http://jsfiddle.net/YYg8U/13/是的它的工作原理 – user3102494