日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jquery数组(排序)

發布時間:2024/9/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jquery数组(排序) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HTML:

1 <h3>字符串數組排序前</h3> 2 <div id="show5"></div> 3 <h3>排序后</h3> 4 <div id="show6"></div>

jquery:

var animals = ['dog','cat','tiger','pig','bird']; $('#show5').html(animals.join('<br/>'));animals = animals.sort(); $('#show6').html(animals.join('<br/>'));

顯示結果:

字符串數組排序前 dog cat tiger pig bird 排序后 bird cat dog pig tiger

如果數組換成了數值數組呢?結果會什么怎么樣的?

如下:

HTML:

<h3>數值數組排序前</h3> <div id="show7"></div> <h3>排序后</h3> <div id="show8"></div>

jquery:

ar nums = ['12','2','5','36','4']; $('#show7').html(nums.join('<br/>'));nums = nums.sort(); $('#show8').html(nums.join('<br/>'));

顯示結果:

數值數組排序前 12 2 5 36 4 排序后 12 2 36 4 5

很明顯,數值數組最后的排序結果不是我們想要的。這是為什么呢?
因為sort()方法排序,是基于ASCII值進行排序的。故它會認為36小于4(因為3的ASCII值小于4的ASCII值)。所以要對排序的sort()方法定義一個比較函數:

jquery:

ar nums = ['12','2','5','36','4']; $('#show7').html(nums.join('<br/>'));//定義了sort的比較函數 nums = nums.sort(function(a,b){ return a-b; });$('#show8').html(nums.join('<br/>'));

顯示結果:

數值數組排序前 12 2 5 36 4 排序后 2 4 5 12 36

這才是我想要的結果!

知識點:

1,sort(function(a,b){return a-b;})對傳入的一對值進行比較,然后返回的的值為:小于0,大于0,等于0;(大于0交換位置,反之則不)

? * 當小于0時,說明b>a,故b的排序靠后(即不變).

? * 當大于0時,說明a>b,故a的排序靠后.

? * 當等于0時,說明a=b,故不改變排序.

如果對數值數組的值進行降序排序。那么只要把返回的值改為b-a!

個人覺得這個方法包含了排序算法的實現過程

總結

以上是生活随笔為你收集整理的jquery数组(排序)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。