Je voudrais savoir laquelle des méthodes ci-dessous pourrait être considérée comme plus efficace. Le premier est assez simple, il utilise deux pour les boucles. Le dernier est mon favori personnel, parce qu'il n'en utilise qu'un. Cependant, je ne suis pas tout à fait sûr des avantages et des inconvénients de chaque méthode, car ils sont tous les deux assez rapides.Itération matricielle - Quelle méthode est la plus efficace?
Ils sont destinés à être utilisés avec un CanvasPixelArray ou avec une structure similaire.
w
et h
représente la largeur et la hauteur des matrices 2D.
for (var y = 0; y < h; y++) {
for (var x = 0; x < w; x++) {
// ...
}
}
for (var i = 0, l = w*h; i < l; i++) {
var x = i%w;
var y = Math.floor(i/w);
// ...
}
[http://jsperf.com/nested-loop/2](http://jsperf.com/nested-loop/2) vous donnerait une indication pour cela. –
Dans les deux cas, le temps nécessaire pour effectuer une simple opération arithmétique risque d'être réduit par rapport à celui nécessaire pour effectuer des opérations de dessin sur le canevas. La première méthode a l'autre avantage d'être plus facile à lire. – Stuart