2013-04-15 2 views
0

Problèmes avec ce script. Il itère à travers un tableau bidimensionnel et ajoute chaque index correspondant ensemble. Donc, fondamentalement arr [0] [1] + arr [0] [2] + arr [0] [3] ... arr [1] [1] + arr [1] [2] + arr [1] [3 ] ...etc.Création dynamique d'un index dans un tableau à deux dimensions

Ce premier fonctionne très bien. Donc, ma logique est ok. Mon problème ici est que je ne peux pas créer les indices dynamiquement. Je ne pense pas qu'une poussée fonctionnera puisque je fais la somme des valeurs ici.

var cat_stats_week_radar = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0]]; 


    for (var i = 0; i < cat_stats_week.length; i++) { 
     for (var j = 0; j < cat_stats_week[0].length; j++) { 
      cat_stats_week_radar[0][j] += +(cat_stats_week[i][j]); 
     } 

} 

Celui-ci ne fonctionne pas, je ne reçois pas d'erreur, juste un tas de valeurs NaN.

var cat_stats_week_radar = [[]]; 


    for (var i = 0; i < cat_stats_week.length; i++) { 
     for (var j = 0; j < cat_stats_week[0].length; j++) { 
      cat_stats_week_radar[0][j] += +(cat_stats_week[i][j]); 
     } 

} 

Voici les tableaux avec lesquels je travaille.

Array pour ajouter:

var cat_stats_week = [ 
[0,0,0,0,0,0,0,1,0,0,0,0,0,0], 
[0,0,0,0,0,0,1,0,0,0,0,0,0,0], 
[0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
[0,0,0,0,0,0,1,0,0,0,0,0,0,0], 
[0,0,0,0,0,0,0,0,0,0,0,0,1,0], 
[0,0,0,0,0,0,0,0,0,0,0,0,1,0], 
[0,0,1,0,0,0,0,0,0,0,0,0,0,0] 
]; 

tableau résultant:

var cat_stats_week_radar = [[0, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 0]]; 

Répondre

2

Vous devez initialiser avec le bon nombre de zéros:

var cat_stats_week_radar = [[]]; 

for (var i = 0; i < cat_stats_week[0].length; i++) { 
    cat_stats_week_radar[0].push(0); 
} 

Et avec Underscore.js :

_.map(_.zip.apply(null, cat_stats_week), function(a) { 
    return _.reduce(a, function(a, b) { 
     return a + b 
    }) 
}); 
+0

Parfait. Je vous remercie! – aph107

Questions connexes