配列で2つの数字をとり、それらを最低から最高まで並べ、それらの間のすべての数の和を返すJavascriptコードを作成しました。だから、sumAll(1、4)//は1 + 2 + 3 + 4の和を10として返します。しかし、私がそれをすると、myのforループで変数totalは0から変化しません。Javascriptのforループが可変量を変更しないのはなぜですか?
var sumAll = function(arr) {
var lower = Math.min(arr[0], arr[1]);
var upper = Math.max(arr[0], arr[1]);
var total = 0;
for (var i = lower; i <= upper; i++) {
total += i;
}
return total;
}
1及び4を使用した場合、このコードは10を返すべきであるが、私は手動で等しい10にVaRの合計を変更する= 0 VARの合計が、それはループのための私を意味する、10になるので、0を与えますそれはすべきことではありません。理由はわかりません。どんな助けでも大歓迎です、私はコードに新しいスーパーですし、しばらくの間これに取り組んできました。
また、これはTDDプロジェクトであるため、spec jsファイルに添付されています。だから、このコードの唯一の他の部分は、実際に私は配列を呼び出すのではなく、
module.exports = sumAll
specファイルには、このために尋ねる:
var sumAll = require('./sumAll')
describe('sumAll', function() {
it('sums numbers within the range', function() {
expect(sumAll(1, 4)).toEqual(10);
});
あなたは**どのように**機能を呼びますか? *編集*ああ私は今それを参照してください。あなたの関数が配列を期待するので、呼び出しは 'sumAll([1、4])'でなければなりません。 – Pointy
はあなたの入力を表示します、 'arr'の中身は何ですか? –
私はちょうど私のブラウザでコンソールにそれを実行し、10を返します。あなたは関数を呼び出すコードを投稿できますか? – Asher