iT邦幫忙

0

javascript 陣列物件如何排序

假設 temp=[1,2,3,4],一般排序的方法為 temp.sort()

如果把陣列宣告為物件的話該如何排序呢
temp[0].txt=1
temp[0].val='bus'
temp[1].txt=2
temp[1].val='apple'
temp[2].txt=3
temp[2].val='juice'
temp[3].txt=4
temp[3].val='zoo'
如何將陣列temp依txt屬性排序呢

如果直接用temp.sort()則沒辦法排序

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

32
fillano
iT邦超人 1 級 ‧ 2009-03-02 17:47:41
最佳解答

你可以把自訂的排序邏輯寫成函數傳給sort,他就會按照你的方法來做排序。
例如:

<pre class="c" name="code">
var temp = [];
temp[0] = {};
temp[0].txt=1
temp[0].val='bus'
temp[1] = {};
temp[1].txt=2
temp[1].val='apple'
temp[2] = {};
temp[2].txt=3
temp[2].val='juice'
temp[3] = {};
temp[3].txt=4
temp[3].val='zoo'
temp.sort(function(a,b){return b.txt-a.txt;});
for(var i=0; i<4; i++) {
	alert(temp[i].txt);
}
wordsmith iT邦高手 1 級 ‧ 2009-03-02 17:50:28 檢舉

沒錯,這樣子就可以選出來了,是個蠻好用的JS技巧哦

我要發表回答

立即登入回答