---
tags: JS - 練習
---
# 【Sort】排序 練習
> https://medium.com/@leokao0726/%E6%B7%BA%E8%AB%87-js-sort-%E5%88%B0%E8%83%8C%E5%BE%8C%E6%8E%92%E5%BA%8F%E6%96%B9%E6%B3%95-1035f5b8cde8
>https://www.fooish.com/javascript/array/sort.html
>https://ithelp.ithome.com.tw/articles/10225733
>
:::warning
### Sort
//String
var months = ['March', 'Jan', 'Feb', 'Dec'];
console.log(months.sort()); // ["Dec", "Feb", "Jan", "March"]
//Number
var array1 = [1, 30, 4, 21, 100000];
console.log(array1.sort()); // [1, 100000, 21, 30, 4]
//自定義排序
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
if (a > b) return 1;
if (a < b) return -1;
return 0;
});
console.log(numbers); // [1, 2, 3, 4, 5]
:::
> 請用下列資料,data為學校資料:
```
const data = [
{
class: '甲',
studentsNum: '10',
studentsData: [
{ id: 1, name: '王大偉', age: 18, interest: ['聽音樂', '唱歌', '看書'] },
{ id: 2, name: '陳小名', age: 24, interest: ['打球', '聽音樂'] },
{ id: 3, name: '許世斌', age: 23, interest: ['唱歌', '聽音樂'] },
{ id: 4, name: '吳添財', age: 25, interest: ['打球', '聽音樂'] },
{ id: 5, name: '陳漢霖', age: 66, interest: ['喝酒', '唱歌', '看書'] },
{ id: 6, name: '楊采媗', age: 17, interest: ['打球', '唱歌'] },
{ id: 7, name: '曾無傭', age: 34, interest: ['打球'] },
{ id: 8, name: '楊漢鎮', age: 38, interest: ['看書', '唱歌'] },
{ id: 9, name: '楊是崁', age: 35, interest: ['看書'] },
{ id: 10, name: '楊安浪', age: 50, interest: ['聽音樂', '唱歌', '看書'] }
]
},
{
class: '乙',
studentsNum: '5',
studentsData: [
{ id: 1, name: '蔡申明', age: 50, interest: ['打球', '唱歌', '看書'] },
{ id: 2, name: '蔡文旯', age: 51, interest: ['唱歌', '看書'] },
{ id: 3, name: '陳炘採', age: 58, interest: ['打球'] },
{ id: 4, name: '昂天次', age: 56, interest: ['聽音樂', '唱歌', '看書'] },
{ id: 5, name: '王銘感', age: 58, interest: ['聽音樂'] }
]
},
{
class: '丙',
studentsNum: '6',
studentsData: [
{ id: 1, name: '林赤子', age: 18, interest: ['唱歌'] },
{ id: 2, name: '林小優', age: 24, interest: ['聽音樂', '唱歌', '看書'] },
{ id: 3, name: '陳問鼎', age: 23, interest: ['打球', '唱歌', '看書'] },
{ id: 4, name: '陳字字', age: 25, interest: ['打球', '唱歌', '聽音樂'] },
{ id: 5, name: '陳余文', age: 66, interest: ['聽音樂', '唱歌', '看書'] },
{ id: 6, name: '楊蔡文', age: 17, interest: ['打球', '聽音樂'] }
]
}
]
```
### Sort 題目:
:::info
請將甲班的同學按照年齡排序(高>低)
:::
:::info
請將丙班的同學按照年齡排序(低>高)
:::
:::info
請將乙班的同學按照年齡排序(高>低),並再按照興趣數量(低>高排序)
:::
:::info
請將三個班級資料合成一個陣列,並按照名稱排序
:::
### 補充練習 題目 (不限制方法):
:::info
請整理出學校全部學生名單,並按照班級->年齡排序,並更新ID順序
:::
:::info
請整理出學校學生興趣排行,按照最多人的興趣排序(多->少)
:::
:::info
請整理出姓氏為"陳"的學生,並按照年齡排序
:::
:::info
請將丙班的同學隨機打散到各班級
:::