Javascript Else声明获胜';我不能在循环中工作
我在这里有一个功能并没有像我希望的那样工作。经过一点测试,我发现它没有运行“elseif”语句。 代码如下:Javascript Else声明获胜';我不能在循环中工作,javascript,if-statement,Javascript,If Statement,我在这里有一个功能并没有像我希望的那样工作。经过一点测试,我发现它没有运行“elseif”语句。 代码如下: getWeights : function() { weights = []; for (var i = 0; i < hiddenLayer.length; i++) { weights[i] = {}; for (var j = 0; j < Object.keys(hiddenLayer[i]).length * 3; j
getWeights : function() {
weights = [];
for (var i = 0; i < hiddenLayer.length; i++) {
weights[i] = {};
for (var j = 0; j < Object.keys(hiddenLayer[i]).length * 3; j++) {
if (i == 0) {
for (var t = 0; t < input.length; t++) {
weights[i]["weightsSet" + j] = 1;
}
}
else {
weightCalc = Object.keys(hiddenLayer[i - 1]).length;
for (var u = 0; u < Object.keys(hiddenLayer[i]).length * weightCalc; u++) {
weights[i]["weightsSet" + j] = 1;
}
}
}
}
},
getWeights:function(){
权重=[];
对于(变量i=0;i
请帮我找出它不起作用的原因。
非常感谢您的帮助
编辑
删除评论
编辑2
我解决了这个问题。感谢所有的帮助:)检查第二个或第三个循环是否可以无限次运行尝试将函数简化如下,然后调试以查看发生的情况:
getWeights : function() {
weights = [];
for (var i = 0; i < hiddenLayer.length; i++) {
weights[i] = {};
var limit = input.length;
if (i > 0) {
var weightCalc = Object.keys(hiddenLayer[i - 1]).length;
limit = Object.keys(hiddenLayer[i]).length * weightCalc;
}
for (var j = 0; j < Object.keys(hiddenLayer[i]).length * 3; j++) {
for (var t = 0; t < limit; t++) {
weights[i]["weightsSet" + j] = 1;
}
}
}
}
getWeights:function(){
权重=[];
对于(变量i=0;i0){
var-weightCalc=Object.keys(hiddenLayer[i-1]).length;
limit=Object.keys(hiddenLayer[i]).length*weightCalc;
}
对于(var j=0;j
要获得进一步的帮助,您需要添加与此代码相关的数据,以及问题中的预期输出。您能否提供一个示例,说明什么是
hiddenLayer
。由于循环i
是从0到hiddenLayer.length
,因此它永远不能小于零。我同意@YeldarKurmangaliyev的观点,它应该是一个else
,而不是,否则如果,我不知道这段代码的意图是什么,但我猜你没有得到你期望的结果,因为你在检查你的内环内部的外环索引。我怀疑您希望将检查I
值的if/else逻辑置于内部循环之外。通过在调试器中单步执行来调试代码。它们不会无限循环