JavaScript shift()란?

김진원·2022년 10월 9일

JS

목록 보기
1/11
post-thumbnail

사전적 정의

Shift의 사전적 정의로는 변화, 이동하다, 옮기다 등의 뜻을 포함한다.
JS에서도 마찬가지로 배열 내의 요소를 제거 혹은 변화, 이동시킬 때 쓰이는 뜻으로 많이 사용되어진다.
그럼 어떤 방식으로 사용되어지는지 알아보자.

LIFO - Front

LIFO(Last In First Out) 문자 그대로 첫번째 요소는 아웃되고 마지막은 들어오는 후입선출 형식의 큐 자료구조를 의미한다.
간단한 예제를 보며 이해를 돕자.


let Alphabet = ["A", "B", "C"];
// 배열 선언

ret = Alphabet.shift()

console.log(Alphabet) // ['B', 'C']
// 알파벳을 shift() 메서드 실행 시 첫번째 요소를 제거

console.log(ret) // 'A'
//첫번째 요소 반환

위와 같이 shift()에 값을 넘겨주지 않고 실행 시 배열의 첫번째 요소를 반환하게 된다.

ret = Alphabet.unshift("D");
console.log(Alphabet) //['D', 'B', 'C']
console.log(ret) // D;

unshift()를 통해 값을 넣어줘도 마찬가지로 한방향 즉 첫번째 요소에 삽입하게 된다.

shift의 특성을 이용한 조건문

shift()는 배열의 length가 0일 때, 즉 빈 배열일 때는 undefined를 반환한다.

위 특징을 이용해 간단한 조건문을 작성할 수 있다.

let Alphabet = ["A", "B", "C"]

while( (i = Alphabet.shift()) !== undefined ) {
	console.log(i)
}
// A, B, C 

예제와 같이 while문에서 shift()를 통해 알파벳의 배열이 0이 될때까지 shift하며 배열의 요소를 반환 시킬 수 있다.

참조 mdn

끝으로

shift와 같이 LIFO 형태의 pop, push, slice, splice등 제거, 삽입 메서드 등은 활용도가 높아 각 메서드의 특징을 상기하며 코드를 짜면 보다 문제 해결에 있어 도움이 될 것이다.

profile
사용자의 관점에 대해 욕심이 많은 개발자

0개의 댓글