Responsive Advertisement

JavaScript์—์„œ ๋ฐฐ์—ด ์ •๋ ฌํ•˜๊ธฐ: ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๊ณผ ํ™œ์šฉ

๋ฐฐ์—ด์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. JavaScript์—์„œ๋Š” ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ ์ˆซ์ž, ๋ฌธ์ž์—ด, ๊ฐ์ฒด ๋“ฑ์„ ๋‹ค์–‘ํ•œ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” JavaScript์—์„œ ๋ฐฐ์—ด ์ •๋ ฌ์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. sort(): ๊ธฐ๋ณธ ๋ฐฐ์—ด ์ •๋ ฌ

sort() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์œ ๋‹ˆ์ฝ”๋“œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ˆซ์ž๋ฅผ ์ •๋ ฌํ•  ๋•Œ๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ˆซ์ž ์ •๋ ฌ ์‹œ์—๋Š” ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ •๋ ฌ

const fruits = ['banana', 'apple', 'cherry', 'date'];

fruits.sort();
console.log(fruits);  // ๊ฒฐ๊ณผ: ['apple', 'banana', 'cherry', 'date']

์œ„ ์˜ˆ์ œ์—์„œ sort()๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌธ์ž์—ด๋กœ ์ทจ๊ธ‰๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ด์™€ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

์ˆซ์ž ๋ฐฐ์—ด ์ •๋ ฌ

์ˆซ์ž ๋ฐฐ์—ด์„ sort()๋กœ ์ •๋ ฌํ•  ๋•Œ๋Š” ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ˆซ์ž๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์œ ๋‹ˆ์ฝ”๋“œ ์ˆœ์„œ๋กœ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

const numbers = [40, 1, 5, 200];

numbers.sort();
console.log(numbers);  // ๊ฒฐ๊ณผ: [1, 200, 40, 5] (์ž˜๋ชป๋œ ์ •๋ ฌ)

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ์ˆซ์ž๊ฐ€ ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌ๋˜์–ด ์ž˜๋ชป๋œ ์ •๋ ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆซ์ž๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ์ˆซ์ž ์ •๋ ฌ

์ˆซ์ž๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ •๋ ฌํ•˜๋ ค๋ฉด ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์—ฌ sort() ๋ฉ”์„œ๋“œ๊ฐ€ ๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์„ ์ง€์ •ํ•ด ์ค๋‹ˆ๋‹ค.

const numbers = [40, 1, 5, 200];

numbers.sort((a, b) => a - b);  // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
console.log(numbers);  // ๊ฒฐ๊ณผ: [1, 5, 40, 200]

numbers.sort((a, b) => b - a);  // ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
console.log(numbers);  // ๊ฒฐ๊ณผ: [200, 40, 5, 1]

์œ„ ์ฝ”๋“œ์—์„œ a - b๋Š” ์ˆซ์ž๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉฐ, b - a๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ์ˆซ์ž ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ๋Š” ํ•ญ์ƒ ์ด์™€ ๊ฐ™์ด ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

2. ๊ฐ์ฒด ๋ฐฐ์—ด ์ •๋ ฌํ•˜๊ธฐ

๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋ ค๋ฉด ํŠน์ • ์†์„ฑ(property)์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋‚˜์ด ๋˜๋Š” ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ˆซ์ž ์†์„ฑ์œผ๋กœ ์ •๋ ฌ

const users = [
    { name: 'John', age: 25 },
    { name: 'Jane', age: 22 },
    { name: 'Mike', age: 32 }
];

// ๋‚˜์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
users.sort((a, b) => a.age - b.age);
console.log(users);
// ๊ฒฐ๊ณผ: [{ name: 'Jane', age: 22 }, { name: 'John', age: 25 }, { name: 'Mike', age: 32 }]

์œ„ ์ฝ”๋“œ์—์„œ๋Š” age ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๊ฐ์ฒด ๋ฐฐ์—ด์˜ ํŠน์ • ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•˜์—ฌ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด ์†์„ฑ์œผ๋กœ ์ •๋ ฌ

๋ฌธ์ž์—ด ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ๋Š” localeCompare()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ๋น„๊ตํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

const users = [
    { name: 'John', age: 25 },
    { name: 'Jane', age: 22 },
    { name: 'Mike', age: 32 }
];

// ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ์•ŒํŒŒ๋ฒณ ์ˆœ ์ •๋ ฌ
users.sort((a, b) => a.name.localeCompare(b.name));
console.log(users);
// ๊ฒฐ๊ณผ: [{ name: 'Jane', age: 22 }, { name: 'John', age: 25 }, { name: 'Mike', age: 32 }]

localeCompare()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด ์†์„ฑ(์ด๋ฆ„)์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. reverse(): ๋ฐฐ์—ด ์ˆœ์„œ ๋’ค์ง‘๊ธฐ

reverse() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋’ค์ง‘์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

const numbers = [1, 2, 3, 4, 5];

numbers.reverse();
console.log(numbers);  // ๊ฒฐ๊ณผ: [5, 4, 3, 2, 1]

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์–ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ •๋ ฌ๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๋‹ค์ฐจ์› ๋ฐฐ์—ด ์ •๋ ฌ

JavaScript์—์„œ๋Š” ๋‹ค์ฐจ์› ๋ฐฐ์—ด(๋ฐฐ์—ด ์•ˆ์˜ ๋ฐฐ์—ด)์„ ์ •๋ ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฐฐ์—ด์˜ ํŠน์ • ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const multiArray = [
    [1, 'banana'],
    [3, 'apple'],
    [2, 'cherry']
];

// ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
multiArray.sort((a, b) => a[0] - b[0]);
console.log(multiArray);
// ๊ฒฐ๊ณผ: [[1, 'banana'], [2, 'cherry'], [3, 'apple']]

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋‹ค์ฐจ์› ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ์ •๋ ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ฐจ์› ๋ฐฐ์—ด์—์„œ๋„ ์›ํ•˜๋Š” ๊ธฐ์ค€์„ ์„ค์ •ํ•˜์—ฌ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ์ปค์Šคํ…€ ์ •๋ ฌ ํ•จ์ˆ˜ ์ž‘์„ฑ

์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ธฐ๋ณธ ์ •๋ ฌ ๋ฐฉ๋ฒ• ์™ธ์— ํŠน์ • ๊ธฐ์ค€์— ๋งž์ถ˜ ์ปค์Šคํ…€ ์ •๋ ฌ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ๊ธธ์ด ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ฑฐ๋‚˜, ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const words = ['apple', 'banana', 'cherry', 'date'];

// ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
words.sort((a, b) => a.length - b.length);
console.log(words);  // ๊ฒฐ๊ณผ: ['date', 'apple', 'banana', 'cherry']

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด ๊ธธ์ด์— ๋”ฐ๋ผ ์ •๋ ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ํŠน์ • ์กฐ๊ฑด์— ๋งž์ถ˜ ์ •๋ ฌ์„ ์œ„ํ•ด ์ปค์Šคํ…€ ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

JavaScript์—์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๋‹ค์–‘ํ•˜๋ฉฐ, ์ƒํ™ฉ์— ๋งž๊ฒŒ sort(), reverse() ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด, ์ˆซ์ž, ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๊ธฐ์ค€์— ๋งž์ถฐ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ปค์Šคํ…€ ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ๋”์šฑ ๋ณต์žกํ•œ ์ •๋ ฌ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด ์ •๋ ฌ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๋„๊ตฌ์ด๋ฏ€๋กœ, ์ด๋ฅผ ์ž˜ ํ™œ์šฉํ•ด ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ