JavaScript將對象數(shù)組按字母順序排序的方法詳解
里給出三種解決方案:
1.if條件語句 + sort()
2.localeCompare() + sort()
3.Collator() + sort()
sort 用法
語法
array.sort(compareFunction)
參數(shù)值
參數(shù) | 描述 |
---|---|
compareFunction | 可選。定義替代排序順序的函數(shù)。該函數(shù)應(yīng)返回負(fù)值、零值或正值,具體取決于參數(shù),例如: function(a, b){ return a - b } sort() 方法比較兩個值時,將值發(fā)送給比較函數(shù),根據(jù)返的(負(fù)、零、正)值對值進(jìn)行排序。 舉例: 比較 40 和 100 時,sort() 方法調(diào)用比較函數(shù)(40,100)。 該函數(shù)計(jì)算 40-100,并返回 -60(負(fù)值)。 sort 函數(shù)會將 40 排序?yàn)樾∮?100 的值。 |
sort() 方法會改變原始數(shù)組。
兼容性
Chrome、IE、Edge、Firefox、Safari、Opera 等 都支持 sort() 方法。
舉例
排序數(shù)組
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var tzy = fruits.sort(); console.log(tzy);
輸出如下:
按升序排序
var points = [66, 100, 3, 10, 250, 88, 77]; var tzy = points.sort((a, b)=> a - b); console.log(tzy);
輸出如下:
按降序排序
var points = [66, 100, 3, 10, 250, 88, 77]; var tzy = points.sort((a, b)=> b - a); console.log(tzy);
輸出如下:
if 條件語句 + sort()
var list = [ { FirsName: "Aaron", LastName: "Baker" }, { FirstName: "Bert", LastName: "Green" }, { FirstName: "Larry", LastName: "White" }, { FirstName: "Victor", LastName: "Fox" }, ] function sortArray(x, y) { if (x.LastName < y.LastName) { return -1; } if (x.LastName > y.LastName) { return 1; } return 0; } var tzy = list.sort(sortArray); console.log(tzy);
輸出如下:
localeCompare() + sort()
var list = [ { FirsName: "Aaron", LastName: "Baker" }, { FirstName: "Bert", LastName: "Green" }, { FirstName: "Larry", LastName: "White" }, { FirstName: "Victor", LastName: "Fox" }, ] function sortArray(x, y) { return x.LastName.localeCompare(y.LastName) } var tzy = list.sort(sortArray); console.log(tzy);
輸出如下:
如果對象目標(biāo) key 中存在標(biāo)點(diǎn)符號,在這種情況下,我們可以使用localeCompare()
函數(shù)并將其設(shè)置為在比較期間忽略標(biāo)點(diǎn)符號。
var list = [ { FirsName: "Aaron", LastName: ",Baker" }, { FirstName: "Bert", LastName: "Green" }, { FirstName: "Larry", LastName: ",White" }, { FirstName: "Victor", LastName: "Fox" }, ] function SortArray(x, y){ return x.LastName.localeCompare(y.LastName, 'fr', {ignorePunctuation: true}); } var tzy = list.sort(sortArray); console.log(tzy);
輸出如下:
你還可以通過將 localeCompare() 函數(shù)的靈敏度設(shè)置為 base 來忽略字符串中存在的特殊字符,如下所示。
x.LastName.localeCompare(y.LastName, 'en', { sensitivity: 'base' });
點(diǎn)擊 傳送門 查看有關(guān) localeCompare()
函數(shù)的更多詳細(xì)信息。
Collator() + sort()
var list = [ { FirsName: "Aaron", LastName: "Baker" }, { FirstName: "Bert", LastName: "Green" }, { FirstName: "Larry", LastName: "White" }, { FirstName: "Victor", LastName: "Fox" }, ] function SortArray(x, y){ return collator.compare(x.LastName, y.LastName); } var tzy = list.sort(sortArray); console.log(tzy);
輸出如下:
到此這篇關(guān)于JavaScript將對象數(shù)組按字母順序排序的方法詳解的文章就介紹到這了,更多相關(guān)JavaScript 對象數(shù)組排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JS對象數(shù)組排序方法測試代碼示例
- JavaScript中好用的數(shù)組對象排序方法分享
- javascript中的Array對象(數(shù)組的合并、轉(zhuǎn)換、迭代、排序、堆棧)
- JS sort方法基于數(shù)組對象屬性值排序
- JS深入學(xué)習(xí)之?dāng)?shù)組對象排序操作示例
- js 根據(jù)對象數(shù)組中的屬性進(jìn)行排序?qū)崿F(xiàn)代碼
- JS實(shí)現(xiàn)給數(shù)組對象排序的方法分析
- JS實(shí)現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作示例
- js中的數(shù)組對象排序分析
- JS實(shí)現(xiàn)json對象數(shù)組按對象屬性排序操作示例
- JavaScripts數(shù)組里的對象排序的24個方法(最新整理收藏)
相關(guān)文章
javascript字符串拆分成單個字符相加和不超過10,求最終值
javascript字符串拆分成單個字符相加和不超過10,求最終值2008-09-09基于Bootstrap里面的Button dropdown打造自定義select
這篇文章主要介紹了基于Bootstrap里面的Button dropdown打造自定義select的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-05-05Bootstrap打造一個左側(cè)折疊菜單的系統(tǒng)模板(一)
這篇文章主要介紹了Bootstrap打造一個左側(cè)折疊菜單的系統(tǒng)模板(一)的相關(guān)資料,需要的朋友可以參考下2016-05-05詳解PHP中pathinfo()函數(shù)導(dǎo)致的安全問題
這篇文章主要給大家介紹了PHP中pathinfo()函數(shù)導(dǎo)致的安全問題,文中給出了詳細(xì)的介紹與示例代碼,相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下,下面來一起看看吧。2017-01-01一文解決微信小程序button、input和image表單組件
在微信小程序開發(fā)中,input?用來實(shí)現(xiàn)文本輸入,如輸入用戶名密碼等等,下面這篇文章主要給大家介紹了關(guān)于如何通過一文解決微信小程序button、input和image表單組件的相關(guān)資料,需要的朋友可以參考下2022-08-08小程序數(shù)據(jù)緩存機(jī)制應(yīng)用實(shí)現(xiàn)
這篇文章主要介紹了小程序數(shù)據(jù)緩存機(jī)制應(yīng)用實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05JS前端知識點(diǎn) 運(yùn)算符優(yōu)先級,URL編碼與解碼,String,Math,arguments操作整理總結(jié)
這篇文章主要介紹了JS前端知識點(diǎn) 運(yùn)算符優(yōu)先級,URL編碼與解碼,String,Math,arguments操作,結(jié)合實(shí)例形式整理總結(jié)了javascript運(yùn)算符優(yōu)先級,URL編碼與解碼,String,Math,arguments操作原理及使用技巧,需要的朋友可以參考下2019-06-06