Responsive Advertisement

JavaScript Array Methods: ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ์˜ ๊ฐœ๋…๊ณผ ํ™œ์šฉ ๋ฐฉ๋ฒ•

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

JavaScript ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ž€?

๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€, ์ œ๊ฑฐ, ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ๋ฐฐ์—ด์—์„œ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์„ ์ฐพ๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. JavaScript๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ๋ฐฐ์—ด ์ž‘์—…๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ

1. push(): ๋ฐฐ์—ด ๋์— ์š”์†Œ ์ถ”๊ฐ€

push() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฐฐ์—ด์˜ ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let fruits = ["apple", "banana"];
fruits.push("cherry");
console.log(fruits);  // ๊ฒฐ๊ณผ: ["apple", "banana", "cherry"]

push()๋Š” ๋ฐฐ์—ด์˜ ๋์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

2. pop(): ๋ฐฐ์—ด ๋์˜ ์š”์†Œ ์ œ๊ฑฐ

pop() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ํ•˜๋‚˜ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

let fruits = ["apple", "banana", "cherry"];
let removedFruit = fruits.pop();
console.log(fruits);  // ๊ฒฐ๊ณผ: ["apple", "banana"]
console.log(removedFruit);  // ๊ฒฐ๊ณผ: "cherry"

pop()์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. shift(): ๋ฐฐ์—ด ์•ž์˜ ์š”์†Œ ์ œ๊ฑฐ

shift() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let fruits = ["apple", "banana", "cherry"];
let firstFruit = fruits.shift();
console.log(fruits);  // ๊ฒฐ๊ณผ: ["banana", "cherry"]
console.log(firstFruit);  // ๊ฒฐ๊ณผ: "apple"

shift()๋Š” ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

4. unshift(): ๋ฐฐ์—ด ์•ž์— ์š”์†Œ ์ถ”๊ฐ€

unshift() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์•ž์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฐฐ์—ด์˜ ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let fruits = ["banana", "cherry"];
fruits.unshift("apple");
console.log(fruits);  // ๊ฒฐ๊ณผ: ["apple", "banana", "cherry"]

unshift()๋Š” ๋ฐฐ์—ด์˜ ์•ž์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

5. concat(): ๋ฐฐ์—ด ๋ณ‘ํ•ฉ

concat() ๋ฉ”์„œ๋“œ๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ๋ฐฐ์—ด์€ ์ˆ˜์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

let fruits = ["apple", "banana"];
let vegetables = ["carrot", "tomato"];
let food = fruits.concat(vegetables);
console.log(food);  // ๊ฒฐ๊ณผ: ["apple", "banana", "carrot", "tomato"]

concat()์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ฐฐ์—ด์„ ์‰ฝ๊ฒŒ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6. slice(): ๋ฐฐ์—ด์˜ ์ผ๋ถ€ ์ถ”์ถœ

slice() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

let fruits = ["apple", "banana", "cherry", "date"];
let slicedFruits = fruits.slice(1, 3);
console.log(slicedFruits);  // ๊ฒฐ๊ณผ: ["banana", "cherry"]

์œ„ ์˜ˆ์ œ์—์„œ slice(1, 3)์€ ๋ฐฐ์—ด์˜ ๋‘ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

7. splice(): ๋ฐฐ์—ด์˜ ์š”์†Œ ์ถ”๊ฐ€, ์ œ๊ฑฐ ๋ฐ ๊ต์ฒด

splice() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ํŠน์ • ์œ„์น˜์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜, ์ƒˆ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ๋ฐฐ์—ด์ด ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.

let fruits = ["apple", "banana", "cherry"];
fruits.splice(1, 1, "blueberry");
console.log(fruits);  // ๊ฒฐ๊ณผ: ["apple", "blueberry", "cherry"]

์œ„ ์ฝ”๋“œ์—์„œ splice(1, 1, "blueberry")๋Š” ๋ฐฐ์—ด์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ "banana"๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  "blueberry"๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

8. forEach(): ๋ฐฐ์—ด ์ˆœํšŒ

forEach() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ œ๊ณต๋œ ํ•จ์ˆ˜๋ฅผ ํ•œ ๋ฒˆ์”ฉ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

let fruits = ["apple", "banana", "cherry"];
fruits.forEach(function(fruit, index) {
    console.log(index + ": " + fruit);
});

์œ„ ์ฝ”๋“œ์—์„œ๋Š” ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์™€ ๊ทธ ์ธ๋ฑ์Šค๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

9. map(): ๋ฐฐ์—ด ์š”์†Œ ๋ณ€ํ™˜

map() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ œ๊ณต๋œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let numbers = [1, 2, 3, 4];
let squaredNumbers = numbers.map(function(num) {
    return num * num;
});
console.log(squaredNumbers);  // ๊ฒฐ๊ณผ: [1, 4, 9, 16]

map()์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๋ณ€ํ™˜ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

10. filter(): ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ ํ•„ํ„ฐ๋ง

filter() ๋ฉ”์„œ๋“œ๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค๋งŒ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(function(num) {
    return num % 2 === 0;
});
console.log(evenNumbers);  // ๊ฒฐ๊ณผ: [2, 4]

filter()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

11. find(): ์กฐ๊ฑด์— ๋งž๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ฐพ๊ธฐ

find() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let numbers = [1, 2, 3, 4, 5];
let firstEvenNumber = numbers.find(function(num) {
    return num % 2 === 0;
});
console.log(firstEvenNumber);  // ๊ฒฐ๊ณผ: 2

find()๋Š” ๋ฐฐ์—ด์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

12. reduce(): ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ถ•์†Œ

reduce() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ํ•ฉ๊ณ„๋‚˜ ํ‰๊ท  ๋“ฑ์„ ๊ตฌํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce(function(accumulator, currentValue) {
    return accumulator + currentValue;
}, 0);
console.log(sum);  // ๊ฒฐ๊ณผ: 15

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋”ํ•˜์—ฌ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

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

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