Uncaught TypeError: Невозможно прочитать свойство 'Array' с неопределенной ошибкой в ​​JS - PullRequest
0 голосов
/ 26 марта 2020

Я делаю очень простой ИИ, это мой первый, и я продолжаю получать ошибку, когда функция генерирует случайные числа для массива весов. Этот код просто для проверки правильности работы. Журнал ошибок:

Uncaught TypeError: Невозможно прочитать свойства 'weights' неопределенной строки: 9 var weight = new Array [];

Вот весь код, потому что, очевидно, я должен опубликовать весь его код, а не тот минимум, который был предложен при переполнении стека:

class preseptron {
  constructor(weights, inputs) {
    this.weights = new Array();
    this.inputs = new Array(inputs);
    this.output;

    function preseptron() {
      for (var i = 0; i < 15;) {
        this.weights[i].push(Math.random(-1, 1));
        i++
      }
    }

    function sum() {
      var sum = 0
      for (var j = 0; j < this.weights.length;) {
        sum += inputs[j] * weights[j];
      }
      var output = Math.sin(sum)
      if (output > 0) {
        output = 1;
      }
      if (output < 0) {
        output = -1;
        return output;
      }
    }
    preseptron()
    sum()
    document.write(output);
  }
}
var test = new preseptron(15, 15);

1 Ответ

0 голосов
/ 29 марта 2020

Вы пытаетесь получить weight из разных областей функций вместо области видимости базового класса. Простая замена их для использования функций стрелок , которые не переопределяют this или установка weight для переменной, решает эту проблему.

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