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ù)、零、正)值對值進行排序。 舉例: 比較 40 和 100 時,sort() 方法調(diào)用比較函數(shù)(40,100)。 該函數(shù)計算 40-100,并返回 -60(負(fù)值)。 sort 函數(shù)會將 40 排序為小于 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)點符號,在這種情況下,我們可以使用localeCompare()函數(shù)并將其設(shè)置為在比較期間忽略標(biāo)點符號。
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' });點擊 傳送門 查看有關(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ù)組中的屬性進行排序?qū)崿F(xiàn)代碼
- JS實現(xiàn)給數(shù)組對象排序的方法分析
- JS實現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作示例
- js中的數(shù)組對象排序分析
- JS實現(xiàn)json對象數(shù)組按對象屬性排序操作示例
- JavaScripts數(shù)組里的對象排序的24個方法(最新整理收藏)
相關(guān)文章
深入理解JavaScript和TypeScript中的class
class 聲明創(chuàng)建一個基于原型繼承的具有給定名稱的新類,下面這篇文章主要給大家介紹了關(guān)于JavaScript和TypeScript中class的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-04-04
js 原生判斷內(nèi)容區(qū)域是否滾動到底部的實例代碼
下面筆者就為大家分享一篇js 原生判斷內(nèi)容區(qū)域是否滾動到底部的實例代碼,具有很好的參考價值,希望對大家有所幫助2017-11-11
JavaScript幾種形式的樹結(jié)構(gòu)菜單
今天我主要講3種不同展示的JavaScript樹結(jié)構(gòu)菜單,分別是懸浮層樹(Tree)、右鍵菜單樹(ContextMenu)和節(jié)點樹(TreeMenu),目前都支持無限級層次。2010-05-05

