2012-09-25 50 views
1

所以,如果我有[2,3400,500,6,710]我想找到最低這將是2及其關鍵這將是0的Javascript找到最低的數字及其關鍵

我用Math.min.apply(Math, array),但現在我想也得到了前鍵。有任何想法嗎?

+0

您是否需要處理非唯一值,即最低值出現在多個索引處的位置? – RobG

回答

5

使用.indexOf

var array, min, index; 
array = [2,3400,500,6,710]; 
min = Math.min.apply(null, array); 
index = array.indexOf(min); 
+0

非常感謝 – ThePinkHipo

1

xdazz的回答做這項工作,你也可以這樣做:

var a = [2, 3400, 500, 710]; 
var lowValue = a.concat().sort(function(a, b){return a - b})[0]; 
var lowIndex = a.indexOf(lowValue); 

注意Array.prototype.indexOf是ES5所以沒有它的瀏覽器提供支持。

+0

是的,但是創建一個數組的副本並對其進行排序以找到最小值效率較低。 – xdazz

+0

可能排序函數是最沒有效率的部分,如果javascript看到數字並在沒有它的情況下對它們進行正確排序,它將會有所幫助。只是想以另一種方式做。 :-) – RobG

相關問題