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