Responsive Advertisement

JavaScript Arrays: ๋ฐฐ์—ด์˜ ๊ฐœ๋…๊ณผ ํ™œ์šฉ ๋ฐฉ๋ฒ•

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

JavaScript ๋ฐฐ์—ด์ด๋ž€?

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

let fruits = ["apple", "banana", "cherry"];
console.log(fruits);  // ๊ฒฐ๊ณผ: ["apple", "banana", "cherry"]
console.log(fruits[0]);  // ๊ฒฐ๊ณผ: "apple" (๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ)

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ์„ธ ๊ฐœ์˜ ๊ณผ์ผ์„ ๋ฐฐ์—ด๋กœ ์ €์žฅํ•˜๊ณ , ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์ • ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. fruits[0]์€ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์ธ "apple"์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๋ฐฐ์—ด์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ

JavaScript ๋ฐฐ์—ด์€ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ • ๋ฐ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. push()์™€ pop(): ๋ฐฐ์—ด์˜ ๋์— ์š”์†Œ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

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

let fruits = ["apple", "banana"];

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

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

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

2. unshift()์™€ shift(): ๋ฐฐ์—ด์˜ ์•ž์— ์š”์†Œ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

unshift()๋Š” ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , shift()๋Š” ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

let fruits = ["banana", "cherry"];

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

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

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

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

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

let fruits = ["apple", "banana"];
let vegetables = ["carrot", "tomato"];

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

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

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

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

let fruits = ["apple", "banana", "cherry", "date"];
let slicedFruits = fruits.slice(1, 3);

console.log(slicedFruits);  // ๊ฒฐ๊ณผ: ["banana", "cherry"]

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

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

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

let fruits = ["apple", "banana", "cherry"];

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

์œ„ ์˜ˆ์ œ์—์„œ splice(1, 1, "blueberry")๋Š” ๋ฐฐ์—ด์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ์ธ "banana"๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๊ทธ ์ž๋ฆฌ์— "blueberry"๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

6. forEach(): ๋ฐฐ์—ด ์š”์†Œ ์ˆœํšŒ

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

let fruits = ["apple", "banana", "cherry"];

fruits.forEach(function(fruit, index) {
    console.log(index + ": " + fruit);
});

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

7. 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()์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ณ€ํ™˜ํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(function(num) {
    return num % 2 === 0;
});

console.log(evenNumbers);  // ๊ฒฐ๊ณผ: [2, 4]

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋ฐฐ์—ด์—์„œ ์ง์ˆ˜๋งŒ์„ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

9. 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()๋Š” ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์ง์ˆ˜๋ฅผ ์ฐพ์•„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

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

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

let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce(function(accumulator, currentValue) {
    return accumulator + currentValue;
}, 0);

console.log(sum);  // ๊ฒฐ๊ณผ: 15

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

๋ฐฐ์—ด์˜ ๊ธธ์ด ํ™•์ธ

๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด length ์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์— ํฌํ•จ๋œ ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

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

๊ฒฐ๋ก 

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

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