javascript
Javascript slice()문법
유니유뉘
2023. 2. 24. 11:12
728x90
Javascript slice() 문법이란?
slice()문법에 대해서
배열의 일부분을 복사하여 새로운 배열을 반환한다.
array.slice( start , end )
- ‘start’ 매개변수는 복사할 배열의 시작 인덱스이며, ‘end’매개변수는 복사를 중지할 인덱스이다.
- ‘end’ 매개변수는 생략 가능하며, 생략하면 배열의 끝까지 복사한다.
- slice()메서드는 원본 배열을 변경하지 않는다.
예시)
const fruits = ['apple','banana','orange','melon','kiwi'];
여기서 첫 번째 요소(apple)와 두번째 요소를(banana) 복사하고 싶을 때 slice()메서드를 사용할 수 있다.
const slicedFruits = fruits.slice(0,2);
console.log(slicedFruits );
//['apple','banana']
이렇게 sliceFruits배열에는 apple과 banana만 포함되고 fruits배열은 변경되지 않는다.
slice() 이용하기
- 배열의 일부분 추출하기
가장 일반적으로 사용한다.const numbers = [1,2,3,4,5]; const sliceNumbers = numbers.slice(1,4); console.log(sliceNumbers); //[2,3,4] - 배열의 복사본 만들기
copiedArray는 originalArray와 동일한 요소를 가진 새로운 배열이 된다.그래서 copiedArray(복사)를 수정해도 originalArray(원본)는 변경되지 않는다. 원본 배열의 일부분을 복사하여 새로운 배열을 만들 수 있다. 이를 이용하면 원본 배열을 변경하지 않고 배열을 조작할 수 있다.const originalArray = [1,2,3,4,5]; const copiedArray = originalArray.slice(); console.log(copiedArray); //[1,2,3,4,5] - 문자열 일부 추출하기
여기 또한 sentence는 변경되지 않는다. 문자열에서 일부분을 추출할 수 있다.const sentence = "The quick brown fox jumps over the lazy dog."; const sliceSentence = sentence.slice(0,9); console.log(sliceSentence); //'The quick' - 배열의 마지막 요소 추출하기
const numbers = [1,2,3,4,5]; const lastNumber = numbers.slice(-1)[0]; console.log(lastNumber); //5
slice()메서드는 -1은 인덱스로 사용하여 마지막 요소를 추출하고 [0]를 입력해 새로운 배열의 첫 번째 요소를 반환한다.
이렇게 slice()메서드는 배열과 문자열을 다룰 때 아주 유용하다.
slice() 응용하기 - 중복된 요소 제거하기
indexOf()메서드는 배열에서 특정 요소의 인덱스를 반환하며, filter()메서드는 배열에서 특정 조건을 만족하는 요소만 추출하여 새로운 배열을 만든다.
이 때 indexOf()메서드와 filter()메서드를 함께 사용하여 중복된 요소를 제거할 수 있다.
const numbers = [1,2,3,2,4,3,5];
const uniqueNumbers = numbers.filter((value,index,self)=>{return self.indexOf(value)===index});
console.log(uniqueNumbers);
//[1,2,3,4,5]
- value : 배열의 각 요소의 값
- index : 배열의 각 요소의 인덱스
- self : 현재 배열
numbers 배열에서 중복된 요소를 제거하여 uniqueNumber 배열에 저장한다.
filter()메서드는 콜백 함수를 전달하여 중복된 요소를 제거한다.
‘self.indexOf(value)’를 이용하여 현재 요소의 인덱스를 검색하고, 이 값과 현재 인덱스가 같은 경우 새로운 배열을 추가한다.
*하지만 이 방법은 추가적인 배열을 만들어내기 때문에 데이터가 큰 경우라면 다른 방법을 택해야한다.
반응형