๋ฐฐ์ด(Array)์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๋์ ๋ณ์์ ์์๋๋ก ์ ์ฅํ ์ ์๋ ์๋ฃ ๊ตฌ์กฐ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ๋ค์ํ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๋ด์ ์ ์์ต๋๋ค.
let fruits = ['์ฌ๊ณผ', '๋ฐ๋๋', 'ํฌ๋'];
๐ฑ ์ค์ํ ๋น์ : ๋ฐฐ์ด์ ์ํ์ฒ๋ผ ์ฌ๋ฌ ์นธ์ ๋ค์ํ ์์์ ๋ด๋ฏ, ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ํ ๋ณ์์ ๋ด์ ์ ์์ต๋๋ค.
| ๋ฐฉ๋ฒ | ์ค๋ช | ์์ |
|---|---|---|
for |
์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ์ ํต์ ์ธ ๋ฐ๋ณต | for(let i = 0; i < arr.length; i++) |
for...of |
๋ฐฐ์ด์ ์์๋ฅผ ํ๋์ฉ ๊บผ๋ | for (let item of arr) |
forEach() |
์ฝ๋ฐฑ ํจ์๋ฅผ ์ฌ์ฉํ ๋ฐ๋ณต | arr.forEach((item) => console.log(item)) |
const fruits = ['์ฌ๊ณผ', '๋ฐฐ', '๋ธ๊ธฐ'];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for (let fruit of fruits) {
console.log(fruit);
}
fruits.forEach(fruit => console.log(fruit));
| ๋ฉ์๋ | ์ค๋ช | ์์ |
|---|---|---|
join(separator) |
๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ํฉ์น๊ธฐ | ['a', 'b'].join('-') โ 'a-b' |
includes(value) |
ํฌํจ ์ฌ๋ถ ํ์ธ | [1,2,3].includes(2) โ true |
indexOf() / lastIndexOf() |
ํน์ ๊ฐ์ ์์น ์ฐพ๊ธฐ | [1,2,3].indexOf(3) โ 2 |
slice(start, end) |
๋ฐฐ์ด์ ์ผ๋ถ ์ถ์ถ (์๋ณธ ์ ์ง) | arr.slice(1, 3) |
splice(start, deleteCount, ...items) |
์์ ์ญ์ /์ถ๊ฐ (์๋ณธ ๋ณ๊ฒฝ) | arr.splice(1, 1, '์๊ฐ') |
concat() |
๋ฐฐ์ด ํฉ์น๊ธฐ | arr1.concat(arr2) |
reverse() |
๋ฐฐ์ด ์์ ๋ค์ง๊ธฐ (์๋ณธ ๋ณ๊ฒฝ) | arr.reverse() |
toSorted() / toReversed() |
ES2023, ์ ๋ ฌ/๋ค์ง๊ธฐ (์๋ณธ ๋ถ๋ณ) | arr.toSorted() |
๊ณ ์ฐจ ํจ์๋, "๋ค๋ฅธ ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๊ฑฐ๋ ๋ฐํํ๋ ํจ์"๋ฅผ ๋งํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ๋ํ์ ์ธ ๊ณ ์ฐจ ํจ์ ๊ธฐ๋ฐ ๋ฉ์๋๋ฅผ ๋ง์ด ์ ๊ณตํฉ๋๋ค.
| ๋ฉ์๋ | ์ค๋ช | ์์ |
|---|---|---|
forEach() |
๋ฐ๋ณต ์ํ (return ์์) | arr.forEach(x => console.log(x)) |
map() |
๋ฐฐ์ด ์์๋ฅผ ๋ณํํ์ฌ ์ ๋ฐฐ์ด ์์ฑ | arr.map(x => x * 2) |
filter() |
์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ง ์ถ์ถ | arr.filter(x => x > 0) |
reduce() |
๋์ ๊ณ์ฐ (์ดํฉ ๋ฑ) | arr.reduce((a,b) => a + b) |
find() |
์กฐ๊ฑด์ ๋ง๋ ์ฒซ ์์ ๋ฐํ | arr.find(x => x > 5) |
some() / every() |
์ผ๋ถ/๋ชจ๋ ์กฐ๊ฑด ์ถฉ์กฑ ์ฌ๋ถ ํ์ธ | arr.some(x => x > 0) |
sort() |
์์ ์ ๋ ฌ (์๋ณธ ๋ณ๊ฒฝ ์ฃผ์) | arr.sort((a,b) => a-b) |
const numbers = [1, 2, 3, 4, 5];
// map
const doubled = numbers.map(num => num * 2); // [2, 4, 6, 8, 10]
// filter
const even = numbers.filter(num => num % 2 === 0); // [2, 4]
// reduce
const sum = numbers.reduce((acc, cur) => acc + cur, 0); // 15
// some / every
const hasNegative = numbers.some(num => num < 0); // false
const allPositive = numbers.every(num => num > 0); // true