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]));