๋ฐฐ์ด (Arrays)
๋ฐฐ์ด(Array)์ ์ฌ๋ฌ ๊ฐ์ ํญ๋ชฉ์ ํ ๊ณณ์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ผํ ๋ชฉ๋ก์ ์๊ฐํด๋ณด์. ๊ฐ๊ฐ์ ์ ํ์ ๊ฐ๋ณ์ ์ธ ํ์ด์ง์ ๊ธฐ๋กํ์ง ์๊ณ , ํ ํ์ด์ง์ ๋์ดํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค. ๋ฐฐ์ด์ ์ด๋ฌํ ๊ฐ๋ ๊ณผ ์ ์ฌํ๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, 1๋ ๋์์ ์ผ์ผ ๊ธฐ์จ์ ๊ธฐ๋กํ๋ ค ํ๋ค๋ฉด, 365๊ฐ์ ๋ณ์๋ฅผ ๋ง๋ค๊ธฐ๋ณด๋ค๋ ํ๋์ ๋ฐฐ์ด์ ์ ์ฅํ๋ ๊ฒ์ด ๋ ์ ์ ํ๋ค.
1. ๋ฐฐ์ด ์์ฑ (Creating an Array)
์ฐ๋ฆฌ๋ ์ธ ๊ฐ์ ์ ํ์ ํฌํจํ๋ ์ผํ ๋ชฉ๋ก์ ๋ง๋ค๊ณ ์ ํ๋ค. ์ด๋ฌํ ๋ฐฐ์ด์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์๋ค.
JavaScript ์ฝ๋:
let shopping = ['bread', 'butter', 'cheese'];
๋ฐฐ์ด์ ๊ฐ ํญ๋ชฉ์ ์์(element) ๋ผ๊ณ ํ๋ค. ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ํ์ฉํ๋ ํ ์ผ๋ง๋ ์ง ๋ง์ ์์๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ๋น์ด์๋ ๋ฐฐ์ด๋ ๋ง๋ค ์ ์๋ค.
let shopping = [];
๋ง์ฝ 365์ผ ๋์์ ๊ธฐ์จ์ ์ ์ฅํ๋ ค๋ฉด, ์ด๊ธฐ๊ฐ์ 0์ผ๋ก ์ค์ ํ์ฌ ๋ฐฐ์ด์ ์์ฑํ ์ ์๋ค.
let temperatures = new Array(365).fill(0);
2. ๋ฐฐ์ด ์์ ์ ๊ทผ (Accessing Array Values)
๋ฐฐ์ด์ ๋ชจ๋ ์์์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค. ๊ฐ ์์๋ ์ธ๋ฑ์ค(index) ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฒํธ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ ์ฐ์์ ์ธ ์ ์์ด๋ค.
์๋ฅผ ๋ค์ด, ๋ค์ ๋ฐฐ์ด์ ๋ณด์.
let shopping = ['bread', 'butter', 'cheese'];
- shopping[0] → 'bread'
- shopping[1] → 'butter'
- shopping[2] → 'cheese'
๋ฐฐ์ด์ ํน์ ์์น์ ๊ฐ์ ํ์ธํ๋ ค๋ฉด ๋๊ดํธ([])๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทผํ ์ ์๋ค.
console.log(shopping[1]); // 'butter'
3. ๋ฐฐ์ด ๊ฐ ์์ (Modifying Array Values)
๋ฐฐ์ด ์์๋ ๊ฐ๋ณ ๋ณ์์ฒ๋ผ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, 42๋ฒ์งธ ๋ ์ ๊ธฐ์จ์ด 25๋์์์ ๊ธฐ๋กํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
temperatures[42] = 25;
์ผํ ๋ชฉ๋ก์ ์๋ก์ด ์ ํ์ ์ถ๊ฐํ๋ ค๋ฉด push ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
shopping.push('eggs');
๋ฐฐ์ด์ ๋ง์ง๋ง ์ธ๋ฑ์ค์ ์๋ก์ด ์์๊ฐ ์ถ๊ฐ๋๋ค.
4. ๋ฐฐ์ด ๋ฐ๋ณต๋ฌธ (Iterating Over an Array)
๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๋ฐ๋ณตํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์๋ฅผ ๋ค์ด, ์ผํ ๋ชฉ๋ก์ ๋ช ๊ฐ์ ํญ๋ชฉ์ด ์๋์ง ์ธ๋ ค๋ฉด length ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค.
let N = shopping.length;
console.log(N); // 3
์์ : ์์ ๊ธฐ์จ์ ๊ธฐ๋กํ ๋ ์ ์ธ๊ธฐ
JavaScript ์ฝ๋:
function countNegativeTemperatures(temperatures) {
let days = 0;
for (let temp of temperatures) {
if (temp < 0) {
days++;
}
}
return days;
}
์ด ํจ์๋ ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ์ํํ๋ฉฐ ์์ ๊ธฐ์จ์ ๊ธฐ๋กํ ๋ ์๋ฅผ ์ธ์ด ๋ฐํํ๋ค.
5. ๊ธฐ๋ณธ ๋ฐฐ์ด ์ฐ์ฐ (Basic Array Operations)
๋ฐฐ์ด์๋ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ์ด ์ ๊ณต๋๋ค.
- ๋ฐฐ์ด ๊ธธ์ด: length
console.log([1, 2, 3].length); // 3
- ๋ฐฐ์ด ๋ฐ๋ณต: ๋ฐฐ์ด์ ์์๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ ์ ์๋ค.
console.log(Array(3).fill('Hello')); // ['Hello', 'Hello', 'Hello']
- ๋ฐฐ์ด ์ฐ๊ฒฐ: ๋ ๊ฐ์ ๋ฐฐ์ด์ ํฉ์น ์ ์๋ค.
console.log([1, 2, 3].concat([4, 5, 6])); // [1, 2, 3, 4, 5, 6]
- ๋ฐฐ์ด ํฌํจ ์ฌ๋ถ ํ์ธ: ํน์ ์์๊ฐ ๋ฐฐ์ด์ ์กด์ฌํ๋์ง ํ์ธํ ์ ์๋ค.
console.log(['bread', 'butter', 'cheese'].includes('butter')); // true
6. ๋ฐฐ์ด ๋ค์ง๊ธฐ (Reversing an Array)
๋ฐฐ์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ํด๋น ๋ฐฐ์ด์ ๋ค์ง๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋ณด์.
JavaScript ์ฝ๋:
function reverseArray(A) {
let N = A.length;
for (let i = 0; i < Math.floor(N / 2); i++) {
let k = N - i - 1;
[A[i], A[k]] = [A[k], A[i]];
}
return A;
}
JavaScript์์๋ ๋ด์ฅ ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ๋ ๊ฐ๋จํ๊ฒ ๋ค์ง์ ์๋ ์๋ค.
A.reverse();
๋๊ธ