๊ธ์ ์์ฑํ๊ธฐ์ ์์ ์ด ๊ฒ์๊ธ์ ์ง์์ ์ ํ๋ธ ๋๋ฆผ์ฝ๋ฉ by ์๋ฆฌ๋์ ๋์์์ด ์ถ์ฒ์์ ์๋ ค๋๋ฆฝ๋๋ค.
https://www.youtube.com/watch?v=yOdAVDuHUKQ&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=8
Declaration
๋ฐฐ์ด์ ์ ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์
const arr1 = new Array();
์ฒซ ๋ฒ์งธ๋ก ์์ ๊ฐ์ด new๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ์ค๋ธ์ ํธ๋ฅผ ์ ์ธํ๋ ๋ฐฉ์์ด๊ณ
๋ ๋ฒ์งธ๋ก ๋ ํํ๊ฒ ์ฐ์ด๋ ๋ฐฉ๋ฒ์ด ์๋ค
const arr2 = [1, 2, 3, 4];
๋๊ดํธ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ์ฌ ๋ฐฐ์ด์ ์์ฑํ ์ ์๋ค
โ
๋ฐฐ์ด์ Index๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ์ด ๋๋ค
๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ Index๋ 0๋ฒ์งธ๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ 1์ด ์ฝ์ ๋ ์ฒซ ๋ฒ์งธ ์๋ฆฌ๋ 0๋ฒ์งธ Index์ด๋ค
โ
Index position
์ธ๋ฑ์ค๋ฅผ ํตํด ๋ฐฐ์ด์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์
const fruits = ['apple', 'banana'];
console.log(fruits);
์ฐ์ fruits ๋ฐฐ์ด ์์ apple ๊ณผ banana๋ฅผ ๋ฃ์ด๋ณด๋๋ก ํ์
๊ทธ ์ดํ fruits ๋ฐฐ์ด์ ์ถ๋ ฅํ๊ฒ ๋๋ฉด
(2) ["apple", "banana"]
์ด๋ ๊ฒ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ์ด ๋๋ค ์ฌ๊ธฐ์ ์ ์ ์๋ ๊ฒ์
0๋ฒ์งธ ์ธ๋ฑ์ค๋ apple์ด๊ณ
1๋ฒ์งธ ์ธ๋ฑ์ค๋ banana์ด๊ณ
์ด ๋ฐฐ์ด์ length๋ 2์ด๋ค
๊ทธ๋ผ ์ด๋ฒ์๋ ๊ฐ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํด๋ณด๋๋ก ํ์
console.log(fruits[0]);
์์ ๊ฐ์ด ๋ฐฐ์ด์ ์ด๋ฆ ๋ค์ ๋๊ดํธ [] ์์ ์ํ๋ ์ธ๋ฑ์ค์ ๋ฒํธ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๊ทธ ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ์ด ๋๋ค
๋ฐฐ์ด์ ๋ง์ง๋ง์ ์๋ ๊ฐ์ ๋ถ๋ฌ์ค๋ ค๋ฉด
console.log(fruits[fruits.length - 1]);
์์ ๊ฐ์ด ํด์ฃผ๋ฉด ๋ฐฐ์ด์ ๋ง์ง๋ง ๊ฐ์ด ์ถ๋ ฅ์ด ๋๋ค
๋ฐฐ์ด์ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ ์ด ๊ธธ์ด์ - 1์ ํด์ฃผ๋ฉด ๋ง์ง๋ง ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค
Looping over an array
๋ฐฐ์ด ๋ด๋ถ์ ์๋ ๋ชจ๋ ๊ฐ๋ค์ ์ถ๋ ฅํด๋ณด์
โ
์ฒซ ๋ฒ์งธ๋ก for ๋ฌธ์ผ๋ก ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ด๋ค
for( let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
์ค๋ช ์ ํ์๋ฉด ์ฐ์ for ๋ฌธ์ ๊ดํธ () ์์ ์กฐ๊ฑด๋ค์ด ์ฐธ์ด๋ฉด ๊ณ์ ๋ฐ๋ณตํ๊ฒ ๋๋ ๋ฐ๋ณต๋ฌธ์ด๋ค
๋ณ์ i ๊ฐ 0์ผ๋ก ์ง์ ๋์๊ณ fruits.length๋ 2์ด๋ฉฐ i ๋ ruits.length ๋ณด๋ค ์์ง ์์ ๋๊น์ง
๋ฐ๋ณตํ๋ค๊ณ ์๊ฐํ๋ฉด ์์ฃผ ๊ฐ๋จํ๋ค
๋ง์ง๋ง์ i ++ ์ ์ค๊ดํธ {} ์์ ๋ด์ฉ์ด ๋๋๋ฉด i๊ฐ 1์ฉ ์ฆ๊ฐํ๋ค๋ ๋ป!
โ
๊ทธ๋ฌ๋ฏ๋ก i๊ฐ 0 ์ผ ๋ ํ๋ฒ ์ถ๋ ฅํ๊ณ i ๊ฐ 1 ์ฆ๊ฐํ๋ค
i ๊ฐ 1์ด ๋์ด ํ๋ฒ ์ถ๋ ฅํ๊ณ i ๋ 2๊ฐ ๋ผ์ for ๋ฌธ ์ข ๋ฃ
โ
๊ฐ๋จํ๋ค .
๋ค์ ๋ฐฉ๋ฒ์ for of ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค
for(let fruit of fruits) {
console.log(fruit);
}
let์ผ๋ก ์ ์ธ๋ fruit ๋ณ์ ์์ fruits ๋ฐฐ์ด์ด ์์ฐจ์ ์ผ๋ก ํ ๋น๋๋ฉด์ ๋ฐฐ์ด์ ๋ด์ฉ๋ค์ด ์ถ๋ ฅ์ด ๋๋ค
์์์ ์ดํด๋ณธ for ๋ฌธ๊ณผ ๋์์๋ฆฌ๋ ๋๊ฐ์ ๊ฒ ๊ฐ๋ค
๋ง์ง๋ง์ผ๋ก forEach๋ผ๋ API๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค
fruits.forEach((fruit, index) => console.log(fruit, index));
forEach๋ ์ฐ์ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค
์ฒซ ๋ฒ์งธ ์ธ์์ธ fruit์ ๋ฐฐ์ด์ ๋ฐ์ดํฐ, ๋ ๋ฒ์งธ ์ธ์์ธ index๋ ๋ฐฐ์ด์ index ๊ฐ์ ๊ฐ์ ธ์จ๋ค
๋ array๋ผ๋ ์ธ์๋ ๊ฐ์ ธ์ฌ ์ ์๋๋ฐ ๋ณดํต 2๊ฐ์ ์ธ์๋ฅผ ๋ฐ๋๋ค๊ณ ํ๋ค
Add, delete, copy
๋ฐฐ์ด์ ์ฝ์ , ์ญ์ , ๋ณต์ฌ๋ฅผ ์์๋ณด์
โ
๋จผ์ ์ฝ์ ( push )์ ๋ํด์ ์์๋ณด์
fruits.push('strawberry', 'peach');
console.(fruits);
์์ ๊ฐ์ด push๋ฅผ ์ฌ์ฉํ์ฌ 'strawberry'์ 'peach'๋ฅผ ์ฝ์ ํ๋ฉด
(4) ["apple", "banana", "strawberry", "peach"]
๋ฐฐ์ด์ ๋์ ์ฝ์ ์ด ๋์ด์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค!
โ
์ด๋ฒ์๋ ๋ฐฐ์ด์ ์์ ์ฝ์ ์ ํ๋ ๋ฐฉ๋ฒ๋ ์์๋ณด๋๋ก ํ์
fruits.unshift('strawberry', 'peach');
console.(fruits);
unshift๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์์ ์ฝ์ ํ๋ค ๊ฒฐ๊ณผ๊ฐ์ ์์๋ณด์
(4) ["strawberry", "peach", "apple", "banana"]
์์ ๊ฐ์ด ๋ฐฐ์ด์ ์์ ์ฝ์ ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค
๋ค์์ ์ญ์ (pop)์ ๋ํด์ ์์๋ณด์
fruits.pop();
console.log(fruits);
์์ ๊ฐ์ด pop์ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ ๋์ ์๋ ๋ฐ์ดํฐ ํ๋๋ฅผ ์ญ์ ํ๊ฒ ๋๋ค
(3) ["apple", "banana", "strawberry"]
๋ฐฐ์ด์ ๋์ ์๋ peach๊ฐ ์ญ์ ๋ ๊ฒ์ ์ ์ ์๋ค
โ
์ด๋ฒ์๋ ๋ฐฐ์ด์ ์์ ์ญ์ ํ๋ ๋ฐฉ๋ฒ๋ ์์๋ณด๋๋ก ํ์
fruits.shift();
console.log(fruits);
์ด๋ ๊ฒ shift๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฐฐ์ด์ ๋งจ ์์ ์๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ค
(3) ["banana", "strawberry", "peach"]
๋งจ ์์ ์๋ ๋ฐ์ดํฐ 'apple' ์ด ์ญ์ ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ฌ๊ธฐ์ ์ค์ํ ์ ์
shift์ unshift๋ pop๊ณผ push ๋ณด๋ค ๋๋ฆฌ๋ค
์ด์
pop๊ณผ push๋ ๋ฐฐ์ด์ ๋์์ ๋์์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์
๋น์ด์๋ ์ธ๋ฑ์ค์ ์ฝ์ ๊ณผ ์ญ์ ๋ฅผ ํ๊ฒ ๋๋ ๊ฐํธํ ๋์์ด์ง๋ง
โ
shift์ unshift๋ ๋ฐฐ์ด์ ์์์ ๋์์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ์๋ ๋ค์ด์๋ ์์๋ค์ ์ฝ์ ํ ๋๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊ธฐ๊ณ ์ฒซ ๋ฒ์งธ ์๋ฆฌ์ ์ฝ์ ํ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ์ญ์ ๋ฅผ ํ ๋๋ ์ญ์ ์ดํ ๋ฐ์ดํฐ๋ค์ ์ผ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฑฐ์น๊ฒ ๋๋ ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๋น๊ต์ ๊ฐํธํ ๋์์ ํ๋ pop๊ณผ push๋ณด๋ค ๋๋ฆด ์๋ฐ์ ์๋ค
์ด๋ฒ์๋ splice๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ ํฌ์ง์ ์์ ์ง์ฐ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์
fruits.push('apple', 'banana', 'strawberry', 'peach', 'lemon');
์ฐ์ ์์ ๊ฐ์ด 5๊ฐ์ ๊ณผ์ผ์ด ๋ค์ด์๋ ๋ฐฐ์ด์ด ์๋ค๊ณ ํ์
โ
splice๋ฅผ ํตํด ์ง์ ๋ ํฌ์ง์ ์์ ์ง์๋ณด๋๋ก ํ์
fruits.splice(1, 1)
์ฒซ ๋ฒ์งธ ์ธ์๋ ์ด๋์๋ถํฐ ์ง์ธ ๊ฑด์ง ์ฆ ์์ํ๋ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ง์ ํ๊ณ
๋ ๋ฒ์งธ ์ธ์๋ ๋ช ๊ฐ๋ฅผ ์ง์ธ ๊ฑด์ง ์ ์ด์ฃผ๋ฉด ๋๋ค
๊ทธ๋ ๋ค๋ฉด ์์ ์ฝ๋๋ 1๋ฒ์งธ ์ธ์๋ถํฐ 1๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด๋ค
โ
์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค
["apple"]
๊ฒฐ๊ณผ๋ 1๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ๋ค์ ๋ชจ๋ ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ค ์ญ์ ํ๊ฒ ๋๋ค
โ
โ
์ด๋ฒ์๋ ์ง์ ํ ์ธ๋ฑ์ค๋ฅผ ์ง์ฐ๊ณ ๊ทธ ์๋ฆฌ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํด๋ณด์
fruits.splice(1, 1, 'melon', 'watermelon');
์์ ๊ฐ์ด 1๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ 1๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ ๊ทธ ์๋ฆฌ์ 'melon'๊ณผ 'watermelon'์ ์ฝ์ ํด๋ณด์
(6) ["apple", "melon", "watermelon", "strawberry", "peach", "lemon"];
1๋ฒ์งธ ์ธ๋ฑ์ค์ธ 'banana'๊ฐ ์ง์์ง ์๋ฆฌ์ 'melon'๊ณผ 'watermelon'์ด ์ฝ์ ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
โ
์ด๋ฒ์๋ ๋๊ฐ์ง์ ๋ฐฐ์ด์ ๋ฌถ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์
const fruits2 = ['pineapple', 'grape']
const newFruits= fruits.concat(fruits2);
console.log(newFruits);
์ด๋ ๊ฒ fruits2 ์ด๋ผ๋ ๋ฐฐ์ด์ ๋ง๋ค๊ณ concat์ ์ด์ฉํด ์ด ๊ฐ์ ๊ธฐ์กด์ ์กด์ฌํ๋ fruits ๋ฐฐ์ด๊ณผ ๋ฌถ์ด๋ณด์
(8) ["apple", "melon", "watermelon", "strawberry", "peach", "lemon", "pineapple", "grape"];
์์ ๊ฐ์ด newFruits ๋ฐฐ์ด์ ๊ธฐ์กด์ fruits ์ fruits2 ๋ฐฐ์ด์ ๋ฌถ์ ์ ์๋ค
Searching
๋ค์์ ๊ฒ์ํ ์ ์๋ API๋ฅผ ์์๋ณด์
๋ฐฐ์ด ์์ ์ด๋ค ๊ฐ์ด ๋ช ๋ฒ์งธ ์ธ๋ฑ์ค์ ์กด์ฌํ๋์ง ์์๋ณด๋ ๊ฒ search์ด๋ค
โ
(4) ["apple", "strawberry", "peach", "lemon"];
์์ ๊ฐ์ด fruits ๋ฐฐ์ด ์์ ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ด ์๋ค๊ณ ๊ฐ์ ํ์ ๋ apple์ ํ์ํด๋ณด์
console.log(fruits.indexOf('apple'));
indexOf๋ผ๋ API๋ก 'apple'์ด ๋ช ๋ฒ์งธ ์ธ๋ฑ์ค์ ์กด์ฌํ๋์ง Searching ํ ์ ์๋ค
๊ฒฐ๊ณผ๊ฐ์ 0์ด ๋์จ๋ค
๋ฐฐ์ด ์์ ์๋ ๊ฐ์ Seaeching ํ๊ฒ ๋๋ฉด -1 ์ด ์ถ๋ ฅ๋๋ค
๋ค์์ ๋ฐฐ์ด ์์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋์ง๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ด๋ค
โ
includes๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค
console.log(fruits.includes('apple'));
์กด์ฌํ๋ค๋ฉด true , ์กด์ฌํ์ง ์์ผ๋ฉด false๊ฐ ์ถ๋ ฅ๋๋ค
๋ง์ฝ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ค๋ณต์ด ๋์์ ๊ฒฝ์ฐ ํ์ํ๋
โ
lastIndexOf์ ๋ํด์ ์์๋ณด์
(5) ["apple", "melon", "watermelon", "strawberry", "apple"];
์์ ๊ฐ์ด apple์ด ์ค๋ณต์ด ๋์์ ๊ฒฝ์ฐ
console.log(fruits.indexOf('apple'));
console.log(fruits.lastIndexOf('apple'));
indexOf๋ ์ฒซ ๋ฒ์งธ๋ก ๋ฐ๊ฒฌํ apple์ ์ธ๋ฑ์ค ๊ฐ์ ์ถ๋ ฅํ๊ณ = 0
lastIndexOf๋ ๋ง์ง๋ง์ ์๋ apple์ ์ธ๋ฑ์ค ๊ฐ์ ์ถ๋ ฅํ๋ค = 4
โ
โ
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JavaScript (ES6) - Array APIs ์ด์ ๋ฆฌ - ( ์ ์ฉํ 10๊ฐ์ง ๋ฐฐ์ด ํจ์ ) (0) | 2021.05.23 |
---|---|
JavaScript (ES6) - Prototype (0) | 2021.05.20 |
JavaScript (ES6) - Object (0) | 2021.05.01 |
JavaScript (ES6) - class ์ object ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ (0) | 2021.05.01 |
JavaScript (ES6) - ํจ์์ ์ ์ธ๊ณผ ํํ ( Arrow Function ) (0) | 2021.04.27 |