โญ๏ธ ๋ฐฐ์ด ์์ฒด๊ฐ ๋ณ๊ฒฝ๋๋ ์ฃผ์ํ์!
let arr = ['a', 'c', 'd', 'e', 'b'];
arr.sort();
console.log(arr); // ['a', 'b', 'c', 'd', 'e']
๋ฌธ์์ด ์ ๋ ฌ ์, ์ํ๋ฒณ ์์๋๋ก ๋ฐฐ์ด ์ ๋ ฌ์ด ์ ๋๋ค
let arr = [27, 8, 5, 13];
arr.sort();
console.log(arr); // [13, 27, 5, 8]
์ ๋ ฌํ ๋ ์์๋ฅผ ๋ฌธ์์ด๋ก ์ทจ๊ธํ๊ธฐ ๋๋ฌธ์ ๊ฐ ์์ ๋งจ ์์ ์ซ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ด ๋๋ค
ํ์ง๋ง ์ด๊ฑด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ ๋ ฌ ๊ฒฐ๊ณผ๊ฐ ์๋๋ค ๐ฅฒ
์ด ๋ ํ์ํ๊ฑด sort() ์ธ์๋ก ์ ๋ ฌ ๋ก์ง์ ๋ด์ ํจ์
๋ฅผ ๋ฐ๋๋ค
let arr = [27, 8, 5, 13];
arr.sort((a, b) => {
return a - b;
});
console.log(arr); // [5, 8, 13, 17]
compareFunction
์ด ์ ๊ณต๋๋ฉด ๋ฐฐ์ด ์์๋ compare ํจ์์ ๋ฐํ ๊ฐ์ ๋ฐ๋ผ ์ ๋ ฌํ๋ค.
a์ b๊ฐ ๋น๊ต๋๋ ๋ ์์๋ผ๋ฉด
๋ฐ๋ผ์ compare ํจ์์ ํ์์ ์๋์ ๊ฐ๋ค.
function compare(a, b){
if (a๊ฐ b๋ณด๋ค ์์ ๊ฒฝ์ฐ) {
return -1; // 0๋ณด๋ค ์์ ๊ฒฝ์ฐ, a๋ฅผ b๋ณด๋ค ๋ฎ์ ์ธ๋ฑ์ค๋ก ์ ๋ ฌ
}
if (a๊ฐ b๋ณด๋ค ํด ๊ฒฝ์ฐ) {
return 1; // 0๋ณด๋ค ํฐ ๊ฒฝ์ฐ, b๋ฅผ a๋ณด๋ค ๋ฎ์ ์ธ๋ฑ์ค๋ก ์ ๋ ฌ
}
if (a์ b๊ฐ ๋์ผํ ๊ฒฝ์ฐ) {
return 0;
}
let arr = [27, 8, 5, 13];
arr.sort((a, b) => {
console.log(a, b);
return a - b;
});
console.log(arr); // [5, 8, 13, 27]
[8, 27, 5, 13]
[5, 8, 27, 13]
[5, 8, 27, 13]
[5, 8, 27, 13]
[5, 8, 13, 27]