배열의 맨 끝에 값을 추가 (하나 이상의 요소 추가 가능)
반환: 배열의 새로운 길이,
원본 배열을 바꾼다
배열의 맨 끝 값(마지막 요소)을 제거
반환: 그(제거된) 요소 반환 , 빈 배열의 경우 undefined를 반환
let colors = ['pink', 'sky'];
colors.push('purple'); // 3 , 배열은 'pink', 'sky', 'purple'
colors.pop(); // 'purple'
배열의 맨 앞에 값을 추가
반환: 추가된 배열의 길이
원본 배열을 바꾼다
배열의 맨 앞의 값(첫 번째 요소)을 제거 => (pop())과 반대
반환: 그(제거된) 요소를 반환, 빈 배열인 경우 pop()과 마찬가지로 undefined가 반환
원본 배열을 바꾼다
let colors = ['red', 'blue'];
colors.unshift('black'); // 3 , 배열은 'black', 'red', 'blue'가 된다.
colors.shift(); // 'black'
배열의 기존 요소 삭제 또는 교체, 새요소 추가하여 배열의 내용 변경
원본 배열 변경, 이 과정에서 삭제된 요소가 있으면 삭제된 요소 반환
배열의 요소를 추출
반환 : 추출하고자 하는 배열의 start index, end index값을 넘겨 받아서 해당 길이만큼 새로운 배열을 반환.
모두 생략한 경우, 배열 똑같이 복제, end index만 생략하면 start 부터 마지막 index까지의 요소 추출
원본 배열에 영향을 주지 않음
let arr = ["1","2","3","4", "5", "6", "7", "8"];
// 파라미터가 없음 => 원본배열 변화없음, 삭제된 요소 없음.
let arr2 = arr.splice();
console.log(arr); // ["1", "2", "3", "4", "5", "6", "7", "8"]
console.log(arr2); // []
// startIndex만 3으로 지정 => 4번째 요소부터 마지막요소까지 모두삭제, 삭제된 요소 return
let arr3 = arr.splice(3);
console.log(arr); // ["1", "2", "3"]
console.log(arr3); // ["4", "5", "6", "7", "8"]
// startIndex 3, deleteCount 2 => 4번째 요소부터 2개의 요소삭제, 삭제된 요소 return
let arr4 = arr.splice(3, 2);
console.log(arr); // ["1", "2", "3", "6", "7", "8"]
console.log(arr4); // ["4", "5"]
// startIndex 2, deleteCount 2 => 2번째 요소부터 2개의 요소삭제, 2번째 index부터 "가", "나" 순서대로 추가, 삭제된 요소 return
let arr7 = arr.splice(2, 2, "가","나");
console.log(arr); // ["1", "2", "가", "나", "5", "6", "7", "8"]
console.log(arr7); // ["3", "4"]
// startIndex -4, deleteCount 2 => arr.length-4 즉, 뒤에서 4번째부터 2개의 요소삭제, 삭제된 요소 return
let arr8 = arr.splice(-4, 2);
console.log(arr); // ["1", "2", "3", "4", "7", "8"]
console.log(arr8); // ["5", "6"]
댓글에 첨부
댓글에 첨부
- 모든 정점을 탐색하는 것이 중요하면 둘다 사용 가능
- 검색 대상 그래프가 정말 크면 DFS가 유리, 검색 시작 지점으로부터 원하는 지점이 가깝다면 BFS가 유리
- 최단 거리 -> 가까운곳부터 찾기 때문에 탐색 시 먼저 찾게 되는 것, 곧 최단 거리라는 뜻
- 큐에 각 노드의 정보를 기록해야하기 때문에 더 많은 메모리 소모 -> target number가 root node로부터 가깝다고 느낄 때 사용
- 실제 개발시 맵 최단거리 안내, 페이스북 친구추천 알고리즘 등에서 사용
- 경로의 특징을 저장해둬야 하는 문제 -> 각각 경로마다 특징을 저장해둬야 하는 경우 (경로에 같은 숫자가 있으면 안된다거나 등등) BFS는 사용하지 못한다.
- 덜 메모리가 소모되지만, 속도는 더 느리다
- 실제 개발에서 미로 게임 같은 곳에서 경로 존재 유무를 판별할 때 사용가능
값이 특정 분류로 나뉘는 거 같다면? 해시 맵을 사용해보기
해시란? 해시 함수에서 얻어지는 값은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.
const animal = {};
animal['dog'] = 'doggy;
animal['cat'] = 'kitty';
위 코드는 string 자료형의 key에 해당하는 공간을 string 자료형의 value로 집어 넣은 것이다.
키,값 형태로 데이터를 저장 -> object나 map으로 구현 가능
배열의 각 요소에 대해 지정된 콜백함수를 순차적으로 실행
안녕하세요 혹시 이미지는 따로 만드신건가요? 만드신거면 어떻게 만드셨는지 궁금해요