일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 통신망분석
- Hermes Engine
- 과제 진행하기
- 구름톤챌린지
- 자바스크립트
- ResizeObserver
- 최솟갑 구하기
- 리액트네이티브
- create-next-app
- jest
- Google 애널리틱스
- JavaScript
- 연결 요소 제거하기
- 프로그래머스
- 테이블 해시 함수
- 날짜 테스트
- Leetcode #javascript #알고리즘 #Algorithms #js
- 리액트네이티브 엔진
- mock date
- nextjs
- 구름톤 챌린지
- 헤르메스 엔진
- 중첩 점
- mutationobserver
- 귤 고르기
- Jest uuid syntax
- 호텔 대실
- 구름톤
- nextjs-performance
- 테스트 Date
- Today
- Total
나만보는개발공부블로그
Splice() 본문
splice(start, deleteCount, item1, item2, item3, etc.)
- start : 시작 인덱스, 만약 배열 크기보다 크면 배열의 크기에서 시작됨, 음수인 경우 배열의 끝에서부터 요소를 세어나간다.
- deleteCount: 시작 인덱스부터 삭제할 갯수
- item1, item2,... : 시작 인덱스에 넣을 아이템 요소값
- splice()는 배열의 요소 순서를 유지시키기 위해 제거시키는 요소가 생성 된 구간(구멍?)이 끝까지 이동되고 배열 크기를 조정하여 제거 할 수있을 때까지 요소의 절반을 계속 이동시키게 된다.
- splice()는 linear time(선형 시간)을 따른다.
https://262.ecma-international.org/6.0/#sec-array.prototype.splice
ECMAScript 2015 Language Specification – ECMA-262 6th Edition
5.1.1 Context-Free Grammars A context-free grammar consists of a number of productions. Each production has an abstract symbol called a nonterminal as its left-hand side, and a sequence of zero or more nonterminal and terminal symbols as its right-hand sid
262.ecma-international.org
가끔식 splice함수를 백준문제에 활용하면 시간초과가 나게되는데 pop()함수보다 Array의 prototype인 splice()함수가 느린 이유?
배열의 pop()함수는 마지막 요소만 삭제하게 되는 constant time을 가지는데 splice()의 경우 배열의 순서를 지키면서 작동하기 때문에 더 오래걸린다.
500000의 길이의 array가 있을때 splice()는 삭제된 요소를 제외한 전체요소를 반환하고 하나의 요소를 지울 때 나머지 499999요소를 새 배열에 복사한다. 그러나 pop()은 한 요소를 줄이는걸로 끝난다.
'Javascript&Typescript' 카테고리의 다른 글
How to use map or forEach ES6 with async and await. (0) | 2022.09.17 |
---|---|
함수형 컴포넌트의 제너릭 타입 설정. (0) | 2021.12.04 |
Shallow Copy & deep Copy (0) | 2021.03.23 |
Hoisting (0) | 2021.03.04 |
Iterable & Iterator (0) | 2021.02.23 |