A propos des tableaux
Qu'est-ce que vous voulez généralement pour itérer sur tableau est la méthode forEach:
arr.forEach(function(el) {
alert(el);
});
Dans votre cas pour incrémenter chaque élément du tableau, je vous recommande la méthode map :
arr = arr.map(function(t){ return t+1; });
Il existe également filter, reduce, et d'autres, qui sont également utiles.
Mais comme Tim Down déjà mentionné, ceux-ci ne fonctionnera pas par défaut dans IE. Mais vous pouvez aussi facilement ajouter ces méthodes pour IE, comme indiqué dans la documentation MDC, ou en fait vous pouvez même écrire des versions plus simples que celles de la documentation MDC (je ne sais pas pourquoi elles sont si peu JavaScript):
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(func, scope) {
for (var i = 0, len = this.length; i < len; i++) {
func.call(scope, this[i], i, this);
}
};
}
Mais ne pas utiliser la for ... in
construction pour les tableaux - c'est destiné à des objets.
A propos des références
Une autre chose, parfois, je veux utiliser la valeur de l'élément et parfois je veux l'utiliser comme référence. Quelle est la différence syntaxique?
En JavaScript, chaque variable est en fait une référence à un objet. Mais ces références sont transmises par la valeur. Laissez-moi vous expliquer ...
Vous pouvez passer un objet à une fonction qui modifie l'objet et les changements seront vu en dehors de la fonction:
function incrementHeight(person) {
person.height = person.height + 1;
}
var p = {height: 10);
alert(p.height); // outputs: 10
incrementHeight(p);
alert(p.height); // outputs: 11
Ici vous modifiez la valeur à laquelle les points de référence person
et ainsi le changement sera reflété en dehors de la fonction.
Mais quelque chose comme ceci échoue:
function incrementHeight(height) {
height = height + 1;
}
var h = 10;
alert(h); // outputs: 10
incrementHeight(h);
alert(h); // outputs: 10
Ici vous créez un tout nouvel objet 11
et d'assigner la référence à la variable height
. Mais la variable h
en dehors de la fonction contient toujours l'ancienne référence et reste donc à pointer sur 10
.
Pour apprendre Javascript, essayez: [Mozilla Developer Center] (https://developer.mozilla.org/en/JavaScript) et le [Programme d'études des normes Web] (http://dev.opera.com/articles/view/programming-the-real-basics/) –