2013-07-05 130 views
-3

我有以下標記:創建一個數組,並得到最低和最高價值

<figure data-item="0"> ... </figure> 
<figure data-item="1"> ... </figure> 
<figure data-item="2"> ... </figure> 
<figure data-item="3"> ... </figure> 
<figure data-item="4"> ... </figure> 
... 

等。

我需要的是獲得最高和最低的數據項目價值。

我開始與此:

var arr = [3, 36, 66, 2, 7]; 
max = 0; 

$.each(arr, function(k, v) { 
    if (v > max) max = v; 
}); 

console.log(max); 

但我不知道如何創建這樣的

+0

那麼,你嘗試過什麼?我們不只是給你答案。作爲一個提示,你可以從['.fn.map'](http://api.jquery.com/map/)開始。 –

+0

無序,這似乎是在您的示例中排序。 – Gabe

+0

@加貝只是一個例子 – user2433958

回答

1

DEMO

var myArray = $('figure').map(function(){ 
    return $(this).data('item'); 
}).get(); 

var maxValue = Math.max.apply(null, myArray); 
var minValue = Math.min.apply(null, myArray); 
+0

此腳本正在爲我打印'Infinity' – user2433958

+1

jsfiddle工作,然後提供您的相關代碼。我認爲你不會爲數字鑄造價值。但是作爲數據API自動將值轉換爲相應的類型,我真的不知道你在做什麼? –

+0

你是對的。我在我的代碼中發現了一個錯誤。謝謝! – user2433958

1

你可以做這樣的事情來獲得分鐘的數組和最大值

var min = 999; 
var min = 0; 

$("figure").each() 
{ 
    var value = $(this).data("item"); 
    if(value < min) min = value; 
    if(value > max) max = value; 
} 

alert(min); 
alert(max); 
+0

但最小值最大值將從數據庫中獲得。 – user2433958

+0

那麼現在還不清楚。你有沒有存儲在DOM中的值? –

+0

@ user2433958:那麼'

'元素的要點是什麼?你的真實*問題是什麼?你真的*試圖做什麼? –

0

要從您的元素中創建一個數組,您可以使用.map

var arr = $('figure').map(function(){ 
    return $(this).data('item'); 
}).get(); 

var max = 0; 

$.each(arr, function(k, v) { 
    if (v > max) max = v; 
}); 

console.log(max); 
相關問題