Jak nahradit položku v poli?

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
}