其他语句不适用于for循环

时间:2015-12-23 04:56:43

标签: javascript if-statement

我在这里有一个功能,它没有像我希望的那样工作。经过一些测试后,我发现它没有运行“else if”语句。 这是代码:

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;
                }
            }
        }
    }
},

请帮我找出它无效的原因。 非常感谢任何帮助。

EDIT 删除了评论

编辑2 我解决了这个问题。感谢所有的帮助:)

2 个答案:

答案 0 :(得分:0)

尝试按如下方式简化功能,然后调试以查看发生的情况:

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;
            }
        }
    }
}

如需任何进一步的帮助,您需要在问题中添加与此代码相关的数据和预期输出。

答案 1 :(得分:-2)

检查第二个或第三个for循环可能是其运行的不定次数