๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿ“„ Sort Array

Question Descriptionโ€‹

์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, sort ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜์„ธ์š”. ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•˜์„ธ์š”:

  1. ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ํฐ ๊ฒƒ ์ˆœ์œผ๋กœ ์ •๋ ฌ(์˜ค๋ฆ„์ฐจ์ˆœ)
  2. ํฐ ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ๊ฒƒ ์ˆœ์œผ๋กœ ์ •๋ ฌ(๋‚ด๋ฆผ์ฐจ์ˆœ)

์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌโ€‹

const numbers = [10, 5, 50, 2, 200];

// ๋น„๊ต ํ•จ์ˆ˜ ์‚ฌ์šฉ
numbers.sort(function (a, b) {
return a - b;
});

console.log(numbers); // [2, 5, 10, 50, 200]

๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌโ€‹

const numbers = [10, 5, 50, 2, 200];

numbers.sort(function (a, b) {
return b - a;
});

console.log(numbers); // [200, 50, 10, 5, 2]

์˜๋„์ ์œผ๋กœ string ์‚ฝ์ž…โ€‹

const mixedNumbers = [10, '5', 50, '2', 200];

mixedNumbers.sort(function (a, b) {
return Number(a) - Number(b);
});

console.log(mixedNumbers); // ['2', '5', 10, 50, 200]

ํ•˜์ง€๋งŒ ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด(์˜ˆ: 'iphone', 'ipad')์„ ์ œ์™ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ž์—ด์€ NaN์œผ๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ, ์ •๋ ฌ ๊ฒฐ๊ณผ์—์„œ ๋งˆ์ง€๋ง‰์— ์˜ฌ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” filter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋จผ์ € ์ œ์™ธํ•œ ํ›„ ๋ฐฐ์—ด์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Object ์ •๋ ฌโ€‹

const mockArray = [
{ type: 'a', label: 1 },
{ type: 'a', label: 2 },
{ type: 'c', label: 1 },
{ type: 'c', label: 3 },
{ type: 'b', label: 2 },
];