본문 바로가기
시작/TIL(Today I Learned)

[유튜브 '드림코딩'] 자바스크립트(JavaScript ES6) 8강 (2)

by 백씨네 2022. 10. 8.
Addition, Deletion, Combine, Searching
오늘 내가 배운 것

shift 와 unshift 는 pop 과 push보다 느리다!

배열에 데이터가 있을 때 뒤에서 부터 넣고 빼는 것은 빈 공간에 데이터를 넣고 빼는 것이기 때문에 기존의 데이터를 움직이지 않아도 되어서  빠른 처리가 가능하지만 (push, pop)

기존 데이터 전체를 앞으로 뒤로 옮기면서 기존 데이터  앞에  새로운 데이터를 추가, 제거할경우 처리 속도가 느리다. (shift, unshift)

 

splice (start, deleteCount?)

지우기 시작하는 index는 반드시 적어두고

지우고 싶은 개수는 필요시 적는다.

지우고 싶은 개수를  적으면 시작점 이후로 모든 데이터를 지우게 된다.

 

 

splice ( start, deleteCount ,  …item)

…item 에 데이터를 넣으면

원하는 위치의 데이터를 지우고(또는 지우지 않고) 추가로 작성도 가능하다.

 

 

Ex) 만약 내가 배열 사이에 원하는 값을 넣고 싶다면?  start 원하는 위치로 적고, deleteCount 0, …item 부분에 원하는 값을 넣는다.

(예시같이 간단한 문제에선 가능한데 실제로 현업에서 적용이 가능할까?)

 

array1 에  array2를 붙이고 싶으면

arrary1.concat(array2)

반대로 array2 에 array1을 붙이고 싶으면

array2.concat(array1)

 

 

 

1. indexOf 이용하여 데이터가 번째 index 있는지 찾을 있다.

만약 해당 데이터가 있으면 데이터가 있는 index 출력해주고

없으면 -1 출력한다.

 

2. Includes 를 이용하여 데이터가 있는지 없는지 확인 가능하다.

True/False 로 출력된다.

 

3. 똑같은 데이터가 2개일 경우 indexOf 를 사용하면 제일첫 번째해당하는 데이터의 index값을 출력하지만  lastIndexOf 사용하면 마지막의 index값을 출력한다.

 

(3개 이상일 경우 중간에 index나 해당 데이터가 있는 모든 index값은 못 구하나..? 아니면 현업에서는 같은 값의 데이터를 쓸 일이 없으려나?)

 

 

요약
push 배열 뒤에 추가하기 push(...items)
pop 배열 맨뒤 제거하기 pop()
unshift 배열 앞에 추가하기 unshift(...items)
shift 배열 맨앞 제거하기 shift()
splice 배열에서 지정 위치 삭제하기 splice ( start, deleteCount?)
splice ( start, deleteCount ,  …items)
indexOf 데이터가 위치하는 인덱스 찾기(중복시엔 제일 처음에 위치한 인덱스) indexOf(…items)
includes 데이터가 있는지 없는지 확인하기 includes(...items)
lastIndexOf 중복되는 데이터를 검색할 때 마지막에 위치한 인덱스 찾기 lastIndexOf(...items)

 


 

동영상 보면서 따라 적어보기
// 4. Addition, deletion, copy
//push : add an item to the end (배열 뒤에 추가하기)
fruits.push('🍓', '🍑')
console.log(fruits);

//pop : remove an item from the end (배열 뒤 제거하기)
fruits.pop();
fruits.pop();
console.log(fruits); 

// unshift : add an item to the beginning  (배열 앞에 추가하기)
fruits.unshift('🍓', '🍋');
console.log(fruits); 

// shift : remove an item from the beginning (배열 앞 제거하기)
fruits.shift();
console.log(fruits);

//!!!!!   shift, unshift are slower than pop, push !!!!!

//splice : remove an item by index position (지정한 위치에서 데이터를 삭제한다. )
fruits.push ('🍓','🍑');
console.log(fruits);
fruits.splice(2, 1)
console.log(fruits);
fruits.splice(1, 1, '🍒');
console.log(fruits);
fruits.splice(1, 0, '🍌');
console.log(fruits);

//combine two arrays (두가지 배열 연결하기)
const fruits2 = ['🍇','🍉'];
const fruits3  = fruits.concat(fruits2);
console.log(fruits3);
const fruits4 = fruits2.concat(fruits);
console.log(fruits4);

//5. Searching (검색하기)
// indexOf : find the index
console.clear();
console.log(fruits);
console.log(fruits.indexOf('🍓'));
console.log(fruits.indexOf('🍇'));
// includes
console.log(fruits.includes('🍓'));
console.log(fruits.includes('🍇'));
//lastIndexOf
fruits.push('🍌');
fruits.push('🍆');
fruits.push('🍌');
console.log(fruits);
console.log(fruits.indexOf('🍌'));
console.log(fruits.lastIndexOf('🍌'));

 

댓글