1. ๋ฐฐ์ด์ด๋?
์์(index)๊ฐ ์๋ ๊ฐ(element)์ ์งํฉ์ด๋ค.
์ด๋, ์์๋ 1์ด ์๋๋ผ 0๋ถํฐ ๋ฒํธ๋ฅผ ๋งค๊ธฐ๋ฉฐ, ๋๊ดํธ [ ] ๋ฅผ ์ด์ฉํด ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๊ฐ๊ฐ์ ์์(element)๋ ์ผํ(,)๋ก ๊ตฌ๋ถํด ์ค๋ค.
a. ๋ฐฐ์ด์ ์ธ๋ฑ์ค ๊ฐ ๊ตฌํ๊ธฐ
let myNumber = [73, 98, 86, 61, 96];
// myNumber ๋ผ๋ ๋ฐฐ์ด์ 3๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์?
myNumber[3]; // 61
let myNumber = [73, 98, 86, 61, 96];
// myNumber ๋ผ๋ ๋ฐฐ์ด์ 5๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์?
myNumber[5]; // undefined : ์ด ๋ฐฐ์ด์ 4๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ ๊น์ง ๋ฐ์ ์๋ค.
b. ๋ฐฐ์ด ์์ ์๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค ๊ฐ ๊ตฌํ๊ธฐ
let myNumber = [[13, 30], [73, 8], [44, 17]];
// myNumber ๋ผ๋ ๋ฐฐ์ด์ 1๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์?
myNumber[1]; // [73, 8]: [13] ์๋ ์ฃผ์!
let myNumber = [[13, 30], [73, 8], [44, 17]];
// myNumber ๋ผ๋ ๋ฐฐ์ด์ 1๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ์ 0๋ฒ์งธ ์ธ๋ฑ์ค์ ๊ฐ์?
myNumber[1]; // 73
let myNumber = [[13, 30], [73, 8],[44, 17]];
myNumber[1]; // [73, 8]
myNumber[1][0]; // 73: ์ด๋ ๊ฒ ๋๊ดํธ์ ๋๊ดํธ๋ฅผ ๋ถ์ฌ์๋ ๋ํ๋ผ ์ ์๋ค.
c. ๋ฐฐ์ด์ ๊ธธ์ด ์์๋ด๊ธฐ
let myNumber = [73, 98, 86, 61];
// myNumber ๋ฐฐ์ด์ ๊ธธ์ด๋?
myNumber.length; // 4: ์จ์ ์ ํ์ฉํด ๋ณ์๊ฐ ๊ฐ์ง๊ณ ์๋ ์์ฑ์ ์ ๊ทผ ๊ฐ๋ฅ
d. ๋ฐฐ์ด๋ก ๋งจ ๋ค์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๊ธฐ
์จ์ (.)์ผ๋ก ๊ด๋ จ๋ ๋ช ๋ น(method: ํํ ๋งํ๋ ๋ฉ์๋)๋ ์คํ ๊ฐ๋ฅํ๋ฉฐ, ๋ช ๋ น์ ์คํํ ๋๋ ํจ์๋ฅผ ์คํํ๋ฏ ๊ดํธ ์ด๊ณ ๋ซ๊ธฐ ํํ๋ก ์คํํ ์ ์๋ค.
ley myNumber = [73, 98, 86, 61];
// myNumber ๋ฐฐ์ด ๋์ 96 ์ด๋ผ๋ ๊ฐ์ '์ถ๊ฐ'ํ๋ ค๋ฉด
myNumber.push(96);
// myNumber ๋ฐฐ์ด ๋ง์ง๋ง ๊ฐ์ '์ญ์ 'ํ๋ ค๋ฉด
myNumber.pop();
2. ๋ฐฐ์ด์ ๋ฐ๋ณต
a. ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด ๋ฐฐ์ด์ ์์๋ฅผ ํ๋ฒ์ฉ ์ถ๋ ฅํ๊ธฐ
let myNum = [73, 98, 86, 61];
for (let n = 0; n < myNum.length; n++) { // for๋ฌธ์ ๋ชจ๋ฅด์ ๋ค๋ฉด ๋ณต์ตํ๊ณ ์ค์๋ผ..
console.log(myNum[n]);
}
b. ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๋์ ํด์ ๋ํ๊ธฐ
์ด๋, ์ฒ์์ 0 ํ ๋น์ ํ์ง ์์ผ๋ฉด undefined๊ฐ ๋์ค๊ณ , ์ด๊ธฐ๊ฐ์ ๋ฃ์ง ์์ ์ํ๋ก ์๋์ ๊ณ์ฐ์ ์ญ ์งํํ๋ฉด NaN์ด ๋์ฌ ๊ฒ์ด๋ค.
let myNum = [10, 20, 40, 10];
let sum = 0;
for(let n = 0; n < myNum.length; n++) {
// sum = 0 + 10 -> sum + myNum[0]
// sum = 10 + 20 -> sum + myNum[1]
// sum = 30 + 40 -> sum + myNum[2]
// sum = 70 + 10 -> sum + myNum[3] -> ๋งํ์๋ฉด ์ด๋ฐ ํํ์ด๋
sum = sum + myNum[n]; // sum์ ์ด๋ฐ ์์ผ๋ก ๊ณ์ฐํ์
}
console.log(sum); // 80
3. ๋ฐฐ์ด ๋ฉ์๋(method)
a. Array.isArray : ํน์ ๊ฐ์ด ๋ฐฐ์ด์ธ์ง ์๋์ง ํ๋ณํ๊ธฐ
let words = ['ํ๋ก ํธ', '์๋', '๊ฐ๋ฐ์'];
typeof words // "object" : ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ง words ๋ผ๋ ๋ฐฐ์ด์ type์ object์
typeof [1, 2, 3] // "object" : ์ซ์๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ type์ object์
Array.isArray('๋ฌธ์์ด') // false : ๋ฌธ์์ด์ ๋ฐฐ์ด์ด ์๋
Array.isArray(123) // false : ์ซ์๋ ๋ฐฐ์ด์ด ์๋
Array.isArray(words) // true : words์ ๋ฐฐ์ด ํํ๊ฐ ๋ง์
Array.isArray([]) // true : ๋๊ดํธ๋ ๋ฐฐ์ด์ ์๋ฏธํ๋ฏ๋ก ๋ฐฐ์ด์ด ๋ง์
b. push, pop : ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ์ญ์ ํ๊ธฐ
let arr = ['frontend', 'engineer'];
console.table(arr) // Array(2)
arr.push('ella') // ๋งจ ๋ค์ 'pre' ๋ผ๋ ์์ ์ถ๊ฐ
console.table(arr) // Array(3)
arr.pop() // ๋งจ ๋ค์ ์์ ์ ์ธ
console.table(arr) // Array(2)
arr.shift() // ๋งจ ์์ ์์ ์ ์ธ
console.table(arr) // Array(1)
arr.unshift('good') // ๋งจ ์์ 'good' ๋ผ๋ ์์ ์ถ๊ฐ
console.table(arr) // Array(2)
์ฐธ๊ณ ๋ก, ์๋์ ๊ฐ์ด console.table(๋ฐฐ์ด) ์ ์ฝ์์ ์ฐ์ด๋ณด๋ฉด ์๋์ ๊ฐ์ด ํ(table) ํ์์ผ๋ก index์ value๋ฅผ ์๊ฐํํ์ฌ ๋ณผ ์ ์๋ค.
c. indexOf : ํน์ ๊ฐ์ด ๋ฐฐ์ด์ ํฌํจ๋์ด ์๋์ง ํ์ธํ๊ณ , ์ธ๋ฑ์ค ๊ฐ์ ์์๋ด๊ธฐ
let word = ['front', 'end', 'engineer'];
word.indexOf('end') // 1 : ํด๋น elemment๊ฐ ๋ค์ด์๋ ์ธ๋ฑ์ค ๊ฐ
word.indexOf('engineer') // 2 : engineer์ ์ธ๋ฑ์ค ๊ฐ
word.indexOf('ella') // -1 : ์๋ ๋จ์ด์ด๋ฏ๋ก -1 ํ์๋จ
word.indexOf('front') !== -1 // true : -1์ด ์๋๋? ์ฆ, ๋จ์ด๊ฐ ์๋๊ฑฐ ๋ง๋? -> ์๋ค(true)
word.indexOf('ella') !== -1 // false : -1์ด ์๋๋? ์ฆ, ๋จ์ด๊ฐ ์๋๊ฑฐ ๋ง๋? -> ์๋ค(false)
word.indexOf('FRONT') // -1 : ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ ์ฃผ์
d. includes : ํน์ ๊ฐ์ด ๋ฐฐ์ด์ ํฌํจ๋์ด ์๋์ง ํ์ธ ํ๊ธฐ
ํจ์๋ฅผ ํ์ฉํ๊ฑฐ๋, includes ๋ฉ์๋๋ฅผ ํ์ฉํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
// 1. ํจ์๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ
// ํน์ ํ ๋ฐฐ์ด์ ์ฐพ๊ณ ์ํ๋ element ํฌํจ ์ฌ๋ถ๋ฅผ false/true๋ก ๋ฐํํ๋ ํจ์
// hasElement(๋ฐฐ์ด, ์ฐพ์ผ๋ ค๋ ์๋ฆฌ๋จผํธ) -> true or false
function hasElement(arr, element) {
let isPresent = arr.indexOf(element) !== -1; // ์ฐพ์ผ๋ ค๋ element๊ฐ ์๋ค๋ฉด (= ์์ง ์๋ค๋ฉด)
return isPresent; // ํด๋น ๊ฐ์ ๋ฆฌํดํ๋ผ
}
hasElement(words, 'end') // true
hasElement(words, 'ella') // false
// 2. ๋ฉ์๋๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ
let words = ['front', 'end', 'engineer'];
words.includes('end') // true
words.includes('ella') // false
๋๊ธ