485 votes

Remplacer l'élément dans le tableau avec JavaScript

 var items = Array(523,3452,334,31,...5346);
 

Chaque élément de ce tableau est un certain nombre.

Comment remplacer un nombre dans un tableau par un nouveau?

Par exemple, nous voulons remplacer 3452 par 1010, comment procéderions-nous?

644voto

Eli Points 7034
var index = items.indexOf(3452);

if (index !== -1) {
    items[index] = 1010;
}

Il est également fortement conseillé de ne pas utiliser la méthode de constructeur pour initialiser vos tableaux. Au lieu de cela, utilisez la syntaxe littérale:

var items = [523, 3452, 334, 31, 5346];

Vous pouvez également utiliser l' ~ opérateur si vous êtes dans laconique, JavaScript et que vous souhaitez raccourcir l' -1 comparaison:

var index = items.indexOf(3452);

if (~index) {
    items[index] = 1010;
}

Parfois j'ai même envie d'écrire un contains fonction pour résumé cette case et de le rendre plus facile à comprendre ce qu'il se passe. Ce qui est génial, c'est cela fonctionne sur les tableaux et chaînes de caractères à la fois:

var contains = function (haystack, needle) {
    return !!~haystack.indexOf(needle);
};

// can be used like so now:
if (contains(items, 3452)) {
    // do something else...
}

145voto

gilly3 Points 33285

La méthode Array.indexOf() remplacera la première instance. Pour obtenir chaque instance, utilisez Array.map() :

 a = a.map(function(item) { return item == 3452 ? 1010 : item; });
 

Bien sûr, cela crée un nouveau tableau. Si vous voulez le faire en place, utilisez Array.forEach() :

 a.forEach(function(item, i) { if (item == 3452) a[i] = 1010; });
 

42voto

Tesserex Points 11149

Utilisez indexOf pour rechercher un élément.

 var i = items.indexOf(3452);
items[i] = 1010;
 

28voto

mellamokb Points 34067

Facilement accompli avec une boucle for .

 for (var i = 0; i < items.length; i++)
    if (items[i] == 3452)
        items[i] = 1010;
 

20voto

canon Points 14870

Solution à instance unique connue:

 items[items.indexOf(3452)] = 1010;
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X