Každá položka tohoto pole je nějaké číslo:
var items = Array(523,3452,334,31, ...5346);
Jak nahradit nějakou položku novou?
Například chceme nahradit 3452
s 1010
, jak bychom to udělali?
Odpověď
var index = items.indexOf(3452); if (index !== -1) { items[index] = 1010; }
Také se doporučuje, abyste k inicializaci polí nepoužívali metodu konstruktoru. Místo toho použijte doslovnou syntaxi:
var items = [523, 3452, 334, 31, 5346];
Můžete také použít ~
Pokud máte rádi stručný JavaScript a chcete zkrátit -1
srovnání:
var index = items.indexOf(3452); if (~index) { items[index] = 1010; }
Někdy dokonce rád napíšu contains
funkce, která tuto kontrolu abstrahuje a usnadňuje pochopení toho, co se děje. Úžasné je, že to funguje na polích i řetězcích:
var contains = function (haystack, needle) { return !!~haystack.indexOf(needle); }; // can be used like so now: if (contains(items, 3452)) { // do something else... }
Počínaje ES6/ES2015 pro řetězce a navrženým pro ES2016 pro pole můžete snadněji určit, zda zdroj obsahuje jinou hodnotu:
if (haystack.includes(needle)) { // do your thing }