国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

js中.sort()函數的常見用法與高級操作

瀏覽:104日期:2022-06-09 18:09:30

這是.sort()函數最常見的用法

//沒有函數參數,按字符編碼格式排序
var arr = [3,2,3,34,12,23,234,84,9];
arr.sort();

// 結果: 12,2,23,234,3,3,34,84,9
// 需要升序或者降序則需要傳入一個函數參數
var arr = [3,2,3,34,12,23,234,84,9];
arr.sort(function (a, b) {
    return a - b;
});
// 結果:2,3,3,9,12,23,34,84,234

// 降序
var arr = [3,2,3,34,12,23,234,84,9];
arr.sort(function (a, b) {
    return b - a;
});

但或許你還對其為什么要這么操作存有一些疑惑

我們要先搞懂往.sort()里傳入的函數的參數a,b是什么

sort()要排序就要遍歷數組,以上面的數組為例子

其中遍歷第一步的a=3、b=2,

第二步時候a=2、b=3,

第三步的時候a=3,b=34

。。。。。。。

就像你寫的冒泡排序一樣,每一個元素都會被對比到

如何排序呢?這是w3c對其的解釋:

若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于b,則返回一個大于 0 的值。

也就是說,在傳入的函數里如果你想a排在b前,就return一個小于0的數

如果你想a排在b后,就return一個大于0的數

這樣,就能完成對數組元素的排序了。

清楚了原理,那么我們就可以想到一些高級的騷操作了

關于對象數組的排序:

// 按age升序排列
var users =[
{ "name": "has",   "age": 17, "height": 165 },
{ "name": "saf",   "age": 20, "height": 172 },
{ "name": "gngh",  "age": 45, "height": 182 },
{ "name": "yjerw", "age": 42, "height": 156 },
{ "name": "cvb",   "age": 22, "height": 176 },
{ "name": "wetty", "age": 32, "height": 178 },
{ "name": "aDNY",  "age": 34, "height": 175 }
     ]
users.sort(function (a, b) {
    return a.age - b.age;
});
// 結果(升序):
/*
name:has age:17 height:165
name:saf age:20 height:172
name:cvb age:22 height:176
name:wetty age:32 height:178
name:aDNY age:34 height:175
name:yjerw age:42 height:156
name:gngh age:45 height:182
*/
// 按name排列
var users =[
{ "name": "has",   "age": 17, "height": 165 },
{ "name": "saf",   "age": 20, "height": 172 },
{ "name": "gngh",  "age": 45, "height": 182 },
{ "name": "yjerw", "age": 42, "height": 156 },
{ "name": "cvb",   "age": 22, "height": 176 },
{ "name": "wetty", "age": 32, "height": 178 },
{ "name": "aDNY",  "age": 34, "height": 175 }
     ]
var users.sort(function (a, b) {
    return a.name - b.name;
});
// 結果:
/*
name:aDNY age:34 height:175
name:cvb age:22 height:176
name:gngh age:45 height:182
name:has age:17 height:165
name:saf age:20 height:172
name:wetty age:32 height:178
name:yjerw age:42 height:156
*/
// 按布爾值排列
var users=[
{ "name": "has",   "age": 17, "height": 165, "state": true},
{ "name": "saf",   "age": 20, "height": 172, "state": false},
{ "name": "gngh",  "age": 45, "height": 182, "state": false },
{ "name": "yjerw", "age": 42, "height": 156, "state": true },
{ "name": "cvb",   "age": 22, "height": 176, "state": false },
{ "name": "wetty", "age": 32, "height": 178, "state": true },
{ "name": "aDNY",  "age": 34, "height": 175, "state": false }
     ]
users.sort(function (a, b) {
    return b.state- a.state;
});
//眾所周知,true - false = 1 
//結果
/*
[
  { name: "has", age: 17, height: 165, state: true },
  { name: "yjerw", age: 42, height: 156, state: true },
  { name: "wetty", age: 32, height: 178, state: true },
  { name: "saf", age: 20, height: 172, state: false },
  { name: "gngh", age: 45, height: 182, state: false },
  { name: "cvb", age: 22, height: 176, state: false },
  { name: "aDNY", age: 34, height: 175, state: false }
]
*/

總結

到此這篇關于js中.sort()函數的常見用法與高級操作的文章就介紹到這了,更多相關js中.sort()函數用法內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 青草青99久久99九九99九九九 | 国产精品久久久久久久久久日本 | 一本色道久久综合亚洲精品高清 | 亚洲国产精品一区二区久 | a毛片成人免费全部播放 | 日韩视频免费一区二区三区 | 国产精品爱久久久久久久三级 | 亚洲区一 | 国产精品人成 | 日本又黄又爽又免费 | 成人毛片免费免费 | 香港三级88久久经典 | 免费看成人播放毛片 | 日韩欧美一及在线播放 | 国产一级久久免费特黄 | 久久精品国产福利 | 日韩国产片 | 国产一区二区三区不卡在线观看 | 国产欧美综合在线一区二区三区 | 亚洲精品成人一区二区aⅴ 亚洲精品成人一区二区www | 国产又色又爽黄的网站免费 | 日本一区二区三区四区不卡 | 老司机免费福利午夜入口ae58 | 久草视频在线资源站 | 亚洲免费在线看 | 亚洲欧美精品 | 国产成人aaa在线视频免费观看 | 国产午夜爽爽窝窝在线观看 | 成人免费高清视频 | 久草网首页 | 欧美一级特黄aa大片在线观看免费 | 久久免费看 | 午夜影院a| cao在线观看 | 中文字幕乱码中文乱码51精品 | 欧美激情视频在线观看一区二区三区 | 欧美成人全部费免网站 | 欧美成人高清免费大片观看 | 国外成人在线视频 | 国产成人精品视频午夜 | 一级特黄aaa大片在 一级特黄aaa大片在线观看 |