Develop/JavaScript
[JavaScript] Splice & Slice
KimBangg
2021. 5. 20. 11:20
1. 머릿말
알고리즘 문제들을 풀면서, Splice와 Slice에 대해서 항상 헷갈리면서 사용을 하다가 이번 기회로 제대로 정리하고자 글을 작성하게 되었습니다 ! 본 내용은 MDN 의 내용을 기반으로 작성되어, 조금 더 이해가 쉬운 방식으로 글을 쓰기 위해 노력을 하였습니다 :)
2. Splice()
arr.Splice ( 시작점, 몇 개, 무엇을 )
Splice가 받아서 처리 할 수 있는 Parameter는 위에 적어 놓은 것처럼 크게 3가지라고 생각하시면 좋습니다.
시작점 => 어디서 Splice를 시작하는지 ?
어디까지 => 시작점 + Parameter Value 까지 Splice
무엇을 => 값이 있으면 ? Splice된 곳에 삽입 || 값을 변경 : 삽입
예시 코드
const months = ["Jan", "March", "April", "June"];
months.splice(2, 0, "hi");
// output : [ 'Jan', 'March', 'donghyeon', 'April', 'June' ]
months.splice(2, 1, "hi");
// output : [ 'Jan', 'March', 'donghyeon', 'June' ]
months.splice(2, 2, "donghyeon");
// output : [ 'Jan', 'March', 'donghyeon' ]
months.splice(2, 2, "donghyeon", "hi");
// output : [ 'Jan', 'March', 'donghyeon', 'hi' ]
months.splice(2, 2, "donghyeon", "hi", "hello");
// output : [ 'Jan', 'March', 'donghyeon', 'hi', 'hello' ]
3. Slice()
slice() 메서드는 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다.
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]
console.log(animals)
// expected output: ['ant', 'bison', 'camel', 'duck', 'elephant'];