Вопрос о структуре данных Javascript (стек) - PullRequest
0 голосов
/ 26 октября 2019

Я изучаю структуры данных / алгоритмы с помощью javascript, и я не могу обнаружить ошибку в моем стеке. Код:

//first javascript algo

console.log("program working");

function Stack() {
  this.dataStore = [];
  this.top = 0;
  this.push = push;
  this.pop = pop;
  this.peak = peak;

  function push(element) {
    this.datastore[this.top++] = element;
  }

  function pop(element) {
    return this.datastore[--this.top];
  }

  function peak() {
    return this.datastore[this.top - 1];
  }
}

var FirstStack = new Stack();
FirstStack.push(1);
FirstStack.push(2);
FirstStack.push(3);

console.log("Peak:" + FirstStack.peak());
console.log("Pop:" + FirstStack.pop());
console.log("Pop:" + FirstStack.pop());

Я получаю ошибку

" this.datastore[this.top++] = element;
                               ^

TypeError: Cannot set property '0' of undefined
    at Stack.push (/Users/mg8686./Desktop/javascriptalgos/algo1.js:13:32)
    at Object.<anonymous> (/Users/mg8686./Desktop/javascriptalgos/algo1.js:26:12)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

Может кто-нибудь сообщить мне, что я делаю не так? Спасибо !!

1 Ответ

0 голосов
/ 26 октября 2019

Проблема с корпусом.

Вы определили:

this.dataStore = [];

И пытаетесь получить доступ

 this.datastore

Javascript чувствителен к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...