Delete: filter VS slice

recoil Atoms 가이드를 보다 slice 로 배열 CRUD 연산을 하는것을 보고 신박하다는 생각을 했다. 왜 이렇게 했을까? filter 보다 속도가 빠른걸까? 라는 의문점과 함께 Delete 의 경우를 예시로 들어 실험해보고자 한다.

let bigArray = new Array(1000000).fill(0);

console.time('deleteByFilter');
let deleteByfilter = bigArray.filter((item, i) => i !== 500000);
console.timeEnd('deleteByFilter');
// deleteByFilter: 28.561279296875 ms

console.time('deleteBySlice');
let deleteBySlice = [...bigArray.slice(0, 50000), ...bigArray.slice(50001)];
console.timeEnd('deleteBySlice');
// deleteBySlice: 40.466064453125 ms

별 차이 없다. 오히려 filter가 더 빠르다.

좋은 웹페이지 즐겨찾기