Je dois définir la valeur de chaque élément de ce tableau, en comptant.
Ainsi, par exemple, chemin [0] .value = 1, chemin [1] .value = 2 etc ...
EDIT: Je recherche le moyen le plus efficace de le faire.
Je pense qu'une boucle for est la meilleure façon, mais je veux apprendre d'autres façons. Peut-on le faire avec la méthode map () ou forEach ()? Qu'en est-il d'un for ... in statement? J'aimerais le faire avec du JS pur, mais si vous pouvez m'apprendre une meilleure façon avec jQuery, je serais intéressé de l'apprendre aussi.
Merci d'avance.
function Cell(x,y){
this.xCoordinate = x;
this.yCoordinate = y;
this.value;
}
var path = [new Cell(0,0), new Cell(0,1), new Cell(0,2)];
4 réponses
Vous pouvez utiliser une boucle for
ou forEach
:
for(var i=0; i<path.length; ++i)
path[i].value = i+1;
path.forEach(function(cell, i) {
cell.value = i + 1;
});
Mieux vaut éviter for...in
à cause de Pourquoi l'utilisation de "for ... in" avec l'itération de tableau est-elle une si mauvaise idée?.
<html>
<body>
<p id="demo"></p>
<script>
function Cell(x,y){
this.xCoordinate = x;
this.yCoordinate = y;
this.value;
}
function setValues(element, index, array){
array[index].value = index+1;
}
var path = [new Cell(0,0), new Cell(0,1), new Cell(0,2)];
path.forEach(setValues);
document.getElementById("demo").innerHTML = path[2].value;
</script>
</body>
</html>
Si vous avez un tableau existant, vous pouvez utiliser la carte.
var path = [0,1,2].map( x => new Cell(0, x))
Ou muter
path = path.map( x => {
x.value = x.yCoordinate - 1
return x
})
Une simple boucle for devrait fonctionner:
var path = [],
len = 10;
for (
var idx = 0;
idx < len;
path.push(new Cell(0,++idx))
)
Questions connexes
Questions liées
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.