<!DOCTYPE>
<html>
??<head>
????<meta?charset="utf-8">
????<title>IFE?JavaScript?Task?01</title>
??</head>
<body>
??<ul?id="source">
????<li>北京空氣質(zhì)量:<b>40</b></li>
????<li>上??諝赓|(zhì)量:<b>70</b></li>
????<li>天津空氣質(zhì)量:<b>80</b></li>
????<li>廣州空氣質(zhì)量:<b>50</b></li>
????<li>深圳空氣質(zhì)量:<b>40</b></li>
????<li>福州空氣質(zhì)量:<b>32</b></li>
????<li>成都空氣質(zhì)量:<b>90</b></li>
????<li>常州空氣質(zhì)量:<b>95</b></li>
??</ul>
??<ul?id="resort">
????
????<li>第一名:北京空氣質(zhì)量:<b>90</b></li>
????<li>第二名:北京空氣質(zhì)量:<b>90</b></li>
????<li>第三名:北京空氣質(zhì)量:<b>90</b></li>
????
??</ul>
??<button?id="sort-btn">排序</button>
??<script>
??window.onload=function(){
?? var?ali=document.getElementById('source').getElementsByTagName('li');
?? var?ab=document.getElementById('source').getElementsByTagName('b');
?? var?arr=[];
?? for(var?i=0;i<ab.length;i++){
?? arr.push([ali[i].firstChild.nodeValue,ab[i].innerHTML]);
?? }
????function?sortArr(arr){
????????
????????for(var?i?=?0;?i?<?arr.length;?i++){
????????????for(var?j?=?0;?j?<?i;?j++){
????????????????if(arr[i][1]?>=?arr[j][1]){
????????????????????var?o?=?arr[i];
????????????????????arr[i]?=?arr[j];
????????????????????arr[j]?=?o;
????????????????}
????????????}
????????}
????????/*return?arr;*/
????}
????sortArr(arr);
?? var?btn=document.getElementById("sort-btn");
?? var?re=document.getElementById('resort');
?? var?ali2=re.getElementsByTagName('li');
?? var?ab2=re.getElementsByTagName("b");
?? btn.onclick=function(){
??????for(var?i=0;i<ali2.length;i++){
????????ali2[i].firstChild.nodeValue="第一名:"+arr[i][0];
????????ab2[i].firstChild.nodeValue=arr[i][1];
}
}
}
??</script>
</body>
</html>上面這一串就是實(shí)現(xiàn)一個(gè)獲得數(shù)據(jù),然后塞進(jìn)一個(gè)數(shù)組排序再顯示的功能,但是數(shù)組不是單純的按數(shù)字大小排序的,如果給個(gè)像110這樣的數(shù),那排序就亂了。知道如果一般數(shù)組的話可以按sort(function(a,b){return a-b;});解決,但不明白原理,因?yàn)槲疑厦娴倪@個(gè)是數(shù)組套數(shù)組,試著寫了幾次沒有成功,請問如何能夠在這個(gè)基礎(chǔ)上按數(shù)字大小排序,謝謝!
關(guān)于數(shù)組排序的問題
Kevinzoo
2017-01-27 01:50:04