sort๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ ๋ ฌํฉ๋๋ค.- ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝ(mutable)ํ๋ฉฐ, ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
- ES10 ์ด์ ์๋ quicksort ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ง๋ง, ์ดํ์๋ timsort ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. (Array.prototype.sort() ๋ฉ์๋์ ์์ ์ฑ ํฅ์ | ๋ค์ด๋ฒ D2)
constalphabet=['A','C','B'];alphabet.sort();console.log(alphabet);// ["A", "B", "C"];constํ๊ธ=['๊ฐ','๋ค','๋'];ํ๊ธ.sort();console.log(ํ๊ธ);// ["๊ฐ", "๋", "๋ค"]- ๊ธฐ๋ณธ ์ ๋ ฌ์ ์ค๋ฆ ์ฐจ์ ์
๋๋ค. ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์ํด
reverse๋ฉ์๋๋ฅผ ํจ๊ป ์ฌ์ฉํฉ๋๋ค.
alphabet.sort().reverse();//ย ["C", "B", "A"]- ๊ธฐ๋ณธ ์ ๋ ฌ์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ ์
๋๋ค.
- ๋ฐฐ์ด์ ์์๊ฐ ์ซ์ ํ์ ์ผ ๊ฒฝ์ฐ, ๋งค๊ฐ๋ณ์๋ก ๋ณ๋์ ํจ์๋ฅผ ๋ช ์ํ์ง ์์ผ๋ฉด ๋ฌธ์์ด๋ก ๋ณํํ ํ ์ ๋ ฌํฉ๋๋ค.
constnumbers=[100,2,30,400,0.5]numbers.sort()//ย [0.5, 100, 2, 30, 400] // ๐ฃ์ซ์ ํ์ ์ ์ ๋ ฌํ ๋๋ (์ ๋ ฌ ์์ ๋ํ๋ด๋) ๋น๊ต ํจ์๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํด์ผ ํฉ๋๋ค.
๋น๊ตํจ์(a, b)๊ฐ ์์๋ฅผ ๋ฐํํ๋ฉด, b๋ฅผ ์ฐ์ ์ ๋ ฌ(์ค๋ฆ์ฐจ์)
๋น๊ตํจ์(a, b)๊ฐ 0๋ฅผ ๋ฐํํ๋ฉด, ์ ๋ ฌ X
๋น๊ตํจ์(a, b)๊ฐ ์์๋ฅผ ๋ฐํํ๋ฉด, a๋ฅผ ์ฐ์ ์ ๋ ฌ(๋ด๋ฆผ์ฐจ์)
constnumbers=[100,2,30,400,0.5]numbers.sort((a,b)=>a-b)// ์ค๋ฆ์ฐจ์// [0.5, 2, 30, 100, 400]numbers.sort((a,b)=>b-a)// ๋ด๋ฆผ์ฐจ์// [400, 100, 30, 2, 0.5]
๊ฐ์ฒด ๋ฐฐ์ด์ ์ ๋ ฌํ ๋๋ ํ๋กํผํฐ์ ํค๋ฅผ ๋งค๊ฐ๋ณ์๋ก ํ๋ ๋น๊ต ํจ์์ ๋น๊ต ์ฐ์ฐ์ ์ฌ์ฉํฉ๋๋ค.
constprofile=[{id: 5,name: 'Amy'},{id: 1,name: 'Bonne'},{id: 3,name: 'Michelle'},{id: 2,name: 'Danny'},{id: 4,name: 'John'},]constcompare=(key)=>{return(a,b)=>(a[key]>b[key] ? 1 : (a[key]<b[key] ? -1 : 0));}profile.sort(compare('id'));console.log(profile);/* 0: {id: 1, name: "Bonne"} 1: {id: 2, name: "Danny"} 2: {id: 3, name: "Michelle"} 3: {id: 4, name: "John"} 4: {id: 5, name: "Amy"} */profile.sort(compare('name'));console.log(profile);/* 0: {id: 5, name: "Amy"} 1: {id: 1, name: "Bonne"} 2: {id: 2, name: "Danny"} 3: {id: 4, name: "John"} 4: {id: 3, name: "Michelle"} */