js array를 queue나 stack 처럼 사용하기 (+ 배열 간 비교하기)

array는 만능이다…

  • 자바에서 queue나 stack을 사용하려면 이에 맞는 객체를 구현해야 한다.
  • 자바스크립트에서 array는 거의 만능이다.
  • queue와 stack처럼 array를 사용하며 그때 사용하는 메서드는 다음과 같다.

queue

  • shift : 첫 번째 값을 꺼낸다.
  • push : 제일 뒤에 넣는다.

  • 참고로 compareArray(left, right)는 배열 두 개를 비교하기 위한 함수이다.
  • 배열 비교 방법을 인터넷에서 찾아보았다. 특별한 내용은 없었다. 유닛테스트 프레임워크 등이 없을 경우, JSON으로 변환하여 비교하는 것이 가장 깔끔하다고 하여 그렇게 하였다. 그 외 특별한 방법은 없는 것으로 보인다.
const log = console.log;

function compareArray(left, right) {
    left.sort();
    right.sort();
    return JSON.stringify(left) === JSON.stringify(right);
}

let num = [1,2,3,4,5];

// offer
let first = num.shift();
log(first===1);

// poll
num.push(6);

log(compareArray(num, [2,3,4,5,6]));

stack

  • pop : 제일 뒤를 꺼낸다.
  • push : 제일 뒤에 넣는다.
num = [1,2,3,4,5];

let last = num.pop();
log(last === 5);

num.push(6);

log(compareArray(num, [1,2,3,4,6]));