[TIL] splice

양주영·2021년 10월 25일
0

TIL

목록 보기
2/13

splice

splice 메서드는 배열 내의 특정한 요소를 삭제하거나, 다른 요소로 대치하거나 새로운 요소를 추가할 때 사용한다.
splice 메서드를 쓸 때는 인자의 순서에 주의해야 한다.
slice와 다르게 원본 배열을 변형시킨다.

splice( start, delete, item )

splice 메서드는 필요에 따라 인자를 최소 1개만 쓸 수도 있다.

  • 첫번째 인자: 배열의 index의 시작점
  • 두번째 인자: 삭제할 요소의 개수
  • 세번째 인자 이후: 추가하고 싶은 요소

🌝 보통 댓글 삭제 기능을 구현할 때, splice 메서드를 많이 활용한다!


Q. 장바구니에서 우유를 제거하고, 두유를 추가하는 함수를 구현해라.

function goToMart() {
  let shoppingCart = ['햄', '김밥김', '단무지', '우유', '시금치', '쌀', '당근', '계란'];
  shoppingCart.splice(3,1,'두유');
  return shoppingCart;
}
console.log(goToMart());
//['햄', '김밥김', '단무지', '두유', '시금치', '쌀', '당근', '계란']

다차원 배열에 for문을 돌리는 방법

for문의 중괄호 안에 또 다른 for문을 작성할 수 있다.
아래 예시를 통해 살펴보자.


Q. 10 이상의 숫자만 배열에 담아 리턴해라.

let numBox = [[1,2,15,3], [4,5,6,10], [31,7,8,9,20]];

function extractOverTen(list){
	let temp = [];
  	for (let i=0; i<list.length; i++){
    	for(let j=0; j<list[i].length; j++){
        	if(list[i][j] >= 10){
            	temp.push(list[i][j]);
            }
        }
    }
  	return temp;
}

console.log(extractOverTen(numBox)); //[15, 10, 31, 20]

Q. 바구니에서 곰팡이를 제거하는 함수를 작성해라.

let basket = [['양파', '곰팡이'], ['곰팡이', '빵', '딸기잼'], ['귤', '곰팡이', '사과']];

function removeGerm(arr) {
	let temp = [];
  	for( let i=0; i<arr.length; i++){
    	for( let j=0; j<list[i].length; j++) {
        	if(arr[i][j] === '곰팡이'){
            	arr[i].splice(j, 1)
                j--;
            }
        }
    }
  return arr;
}

console.log(removeGerm(basket));
//[['양파'], ['빵', '딸기잼'], ['귤', '사과']]
profile
뚜벅뚜벅

0개의 댓글