Addition, Deletion, Combine, Searching
오늘 내가 배운 것
배열에 데이터가 있을 때 뒤에서 부터 넣고 빼는 것은 빈 공간에 데이터를 넣고 빼는 것이기 때문에 기존의 데이터를 움직이지 않아도 되어서 빠른 처리가 가능하지만 (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('🍌'));
'시작 > TIL(Today I Learned)' 카테고리의 다른 글
221011 HTML (1) | 2022.10.11 |
---|---|
[유튜브 '드림코딩'] 자바스크립트(JavaScript ES6) 9강 (1) (0) | 2022.10.10 |
[유튜브 '드림코딩'] 자바스크립트(JavaScript ES6) 8강 (1) (0) | 2022.10.07 |
[유튜브 '드림코딩'] 자바스크립트(JavaScript ES6) 7강 (4) (0) | 2022.10.06 |
[유튜브 '드림코딩'] 자바스크립트(JavaScript ES6) 7강 (3) (0) | 2022.10.06 |
댓글