未捕获的TypeError:无法读取JS中未定义错误的属性“ Array”

时间:2020-03-25 23:20:00

标签: javascript artificial-intelligence

我正在制作一个非常简单的AI,这是我的第一个AI,并且在为权重数组生成随机数的函数时,我不断收到错误消息。这段代码只是为了测试它是否正常工作 错误日志:

未捕获的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 :(得分:0)

您正试图从不同的函数范围而不是基类范围中获取weight。只需替换它们以使用arrow functions而不重新定义this或将weight设置为变量即可解决此问题。