Как положить значение в переменную?

Есть класс, который создает очередь. Подскажите, как мне первый элемент из очереди можно положить в новую переменную до удаления и распаковать т.к. результат приходит в виде массива.

class Queue {
   
  constructor(...elements) {
    // инициализация элементов очереди элементами
    this.elements = [...elements];
  }
 
 
  push(...args) {
    return this.elements.push(...args);
  }
 
  shift(...args) {
    return this.elements.shift(...args);
  }
 
 
  get length() {
    return this.elements.length;
  }
 
  set length(length) {
    return this.elements.length = length;
  }
}

const q = new Queue(0,1,2,3,4);
q.push(5);
console.log(q.length); // 5
while(q.length)

Ответы (1 шт):

Автор решения: Qwertiy

Выбирай:

[Symbol.iterator]() {
  return this.elements[Symbol.iterator]()
}
*[Symbol.iterator]() {
  yield *this.elements
}

PS: В конструкторе spread лишний.

→ Ссылка