0

さて、9 つの配列を含む多次元配列があります。これらのネストされた配列には、それぞれ 10 個の数値が含まれています。簡単にするために、すべてが次のようになっているとしましょう。

var MyArray = [
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10],
[1,2,3,4,5,6,7,8,9,10]
]

ネストされた各配列の最初のインデックス (この場合はすべて 1) を取得してそれらを加算し、この値を配列またはオブジェクトにプッシュする関数を作成しようとしています。次に、次のインデックスのすべての値を追加し、次のインデックスなどを追加して、この関数を続行する必要があります。最終的に、10 個の値の配列が必要です (またはオブジェクトがここでも機能します)。値は次のとおりです。

1+1+1+1+1+1+1+1+1,
2+2+2+2+2+2+2+2+2,
3+3+3+3+3+3+3+3+3...

...などなど、新しい配列の実際の値は次のようになります。

[9, 18, 27, 36, 45, 54, 63, 72, 81]

ここでの問題は、MyArray に 6 つの配列しかない場合、またはネストされた配列にそれぞれ 4 つの値しかない場合に機能するように、柔軟/動的にする必要があることです。それぞれが独自の量の値を持つネストされた配列の任意の量で機能するはずです(ただし、ネストされた各配列には、互いに同じ量の値が含まれます!)。

JavaScript や jQuery を介してこれを達成するための最良の方法は何でしょうか? この方法で、値をオブジェクトに出力することもできることに注意してください。

{1:9, 2:18, 3:27, 4:36, 5:45, 6:54, 7:63, 8:72, 9:81}

別の StackOverflow スレッドからこれと同様のコードを使用してオブジェクトを取得しようとしましたが、返されます

{1:NaN, 2:NaN, 3:NaN, etc.} 

そのスレッドはここにあります:

Javascript 多次元配列: 値の追加

「アンダースコア」メソッドと、Otto が提供する jQuery $.each パーツを使用しています。

誰でもここで助けることができますか??

4

4 に答える 4

1

このようなもの

 var myData = [
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 ];

 var summed = [];

 myData[0].forEach(function (arr, index) {
     var sum = myData.reduce(function (a, b) {
         return a + b[index];
     }, 0);

     summed.push(sum);
 });

 console.log(summed);

jsfiddleについて

于 2013-04-18T15:34:49.410 に答える
0

単純な配列ソリューションは次のようになります。

var results= [];

for (var i=0;i<MyArray.length;i++) {
    for(var j=0; j<MyArray[i].length; j++) {
        if(results[j] == undefined) { results[j] = 0; }
          results[j] = results[j]+data[i][j];

    }
}

行に注意してくださいif(results[j]==undefined)-- これはおそらくあなたがしなかったことです。それを省略すると、NaN数値に未定義の値を追加しているため、すべての行に表示されます。

于 2013-04-18T15:24:06.447 に答える