我正在制作一个非常简单的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);
答案 0 :(得分:0)
您正试图从不同的函数范围而不是基类范围中获取weight
。只需替换它们以使用arrow functions而不重新定义this
或将weight
设置为变量即可解决此问题。