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 ๋ฐฐ์ด ๋ฉ์๋๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๊ณ , ๋ฐฐ์ด์ ์ํํ๊ฑฐ๋ ๋ณํํ๋ ๋ฑ์ ์์ ์ ์์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐฐ์ด ๋ฉ์๋๋ฅผ ์ ํ์ฉํ๋ฉด ๋ณต์กํ ๋ฐ์ดํฐ ์์ ๋ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๊ฒฐํ๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํ๋ก์ ํธ์์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐฐ์ด ๋ฉ์๋๋ฅผ ์ตํ๊ณ , ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋์ฑ ๊ฐํธํ๊ฒ ๋ง๋ค์ด ๋ณด์ธ์!
๋๊ธ ์ฐ๊ธฐ