0

コードを何百万回も調べましたが、問題がわかりません。配列内の数値の可能な合計をすべて返すコードを作成しました。配列に3つの数値がある場合は正常に機能しますが、配列に別の数値を追加すると、合計になるはずのいくつかがNaNに置き換えられます。元:

array = [4, 6, 3, 7] が返されます:

[ 20, 16, 10, 13, 9, 14, 11, 7, 17, NaN, 13 ] そして NaN は "10" でなければなりません

array = [4, 6, 3, 7];
newarray = [0];
for (i = 0; i < array.length; i++) {
    newarray[0] += array[i];
}
x = 0;
y = 1;
for (i = 0; i < array.length; i++) {
    newarray.push((newarray[0]-array[i])); 
    if (i !== 0) {
        y = y+array.length; 
    }
    x = i;
    while (x < array.length) {
        if (x != i) {
            newarray.push((newarray[y]-array[x]));
        }
        x++;
    }
}
console.log(newarray);`

数値が必要なスロットで NaN を取得しているという事実は、while ループ内の変数 x に問題があると信じさせますが、問題が実際にどこにあるのか頭を悩ませています。 http://jsfiddle.net/nsjY6/

4

1 に答える 1