💡 배열에 대해서 공부해보자!!
자료구조
라고 한다.JS === dynamically typed language
-> 타입이 없어서 한 바구니 안에 다양한 종류의 데이터 담을 수 있다. 👎👎array
, map
, set
, list
(single linked list
, double linked list
)// 1. new 키워드 사용
const arr1 = new Array();
// 2. 대괄호 사용
const arr2 = [1, 2];
const fruits = ['🍎', '🍌'];
console.log(fruits);
console.log(fruits.length); // 2
console.log(fruits[0]); // 🍎
console.log(fruits[1]); // 🍌
console.log(fruits[2]); // undefined
// 배열의 마지막 아이템 찾을 때
console.log(fruits[fruits.length - 1]); // 🍌
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));
forEach
는 콜백함수를 불러온다.let i = 0;
for ( i in fruits) {
console.log(fruits[i]);
}
: add an item to the end
fruits.push('🍓', '🍑');
console.log(fruits);
: remove an item from the end
const poped = fruits.pop(); // 1번 빼고
fruits.pop(); // 2번 빼고
// 총 2개를 뺐다.
console.log(fruits);
pop
은 지워진 아이가 return된다.poped
를 출력해보면 지워진 아이가 출력되는 것을 볼 수 있음: add an item to the beginning
fruits.unshift('🍓', '🍋');
console.log(fruits);
: remove an item from the beginning
fruits.shift();
fruits.shift();
console.log(fruits);
⭐️
shift, unshift
are slower thanpop, push
why?pop, push
-> 뒤에 추가하는 것은 빈 공간에 데이터를 넣었다가 지웠다가 하기 때문에 기존에 들어있는 데이터들은 움직이지 않아도 된다. 그러나 앞에서 데이터를 넣게 되면 기존 있는 데이터를 옮기고, 비운 다음에 새로운 데이터를 넣어야한다. 데이터를 삭제 할 때는 삭제하고 땡겨오고, 이런일을 반복적으로 하다보니 배열의 길이가 길면 길수록 느리다.
: remove an item by index position
fruits.push('🍓', '🍑', '🍋');
console.log(fruits);
fruits.splice(1, 1); // 1번 인덱스 1개 삭제
console.log(fruits); // 바나나가 삭제됨
fruits.splice(1, 0, '🍏', '🍉'); // 1번 인덱스에서 0개 지우고, 그 자리에 사과 수박 추가
console.log(fruits);
fruits.splice(2); // index 2번부터 다 삭제
console.log(fruits);
: combine two arrays
const fruits2 = ['🍐', '🥥'];
const newFruits = fruits.concat(fruits2);
console.log(newFruits);
✏️ 항상 예제만 보고 이해하고 넘어가지 말고 api가 선언된 곳에 가서 한번 읽어보고, 확인하는 시간 갖기!!
: find the index
console.log(fruits);
console.log(fruits.indexOf('🍎'));
console.log(fruits.indexOf('🍉'));
console.log(fruits.indexOf('🥥'));
console.log(fruits.includes('🍉')); // true
console.log(fruits.includes('🥥')); // false
fruits.push('🍎');
console.log(fruits);
console.log(fruits.indexOf('🍎')); // 0
console.log(fruits.lastIndexOf('🍎')); // 5
console.log(fruits.lastIndexOf('🥥')); // -1
indexOf
는 첫번째 있는 인덱스 1개만 출력해준다.lastIndexOf
는 마지막에 있는 인덱스 출력해준다.➕ 공부 더 할 것
1. 자료구조와 알고리즘 찾아보기
2. big O 공부하기
3. 정렬에 대해서 찾아보기
3. 콜백함수 공부하기
4. APIs?