splice-metodi
splice-metodi poistaa tai lisää
elementtejä taulukkoon. Voit joko poistaa elementtejä,
lisätä elementtejä tai tehdä molempia
samanaikaisesti. Metodi on erittäin monipuolinen ja
vaikeaselkoinen.
Metodi muuttaa itse taulukkoa ja palauttaa
samalla poistettujen elementtien taulukon.
Ensimmäisenä parametrina metodi ottaa sen taulukon elementin
indeksin, joka pitää poistaa. Toisena parametrina
- kuinka monta taulukon elementtiä tulee poistaa.
Jos asettaa sen arvoon 0 - niin elementtejä ei poisteta
(vain uudet elementit lisätään).
Eroteltuna pilkuilla tulevat elementit, jotka
pitää lisätä taulukkoon (ovat valinnaisia
parametreja). Nämä elementit lisätään
poistettujen taulukon elementtien tilalle.
Jos poistoa ei tapahtunut (kun toinen parametri on
0) - elementit lisätään taulukkoon alkaen
sijainnista, joka on määritelty metodin ensimmäisellä parametrilla.
Ensimmäinen parametri voi olla negatiivinen.
Tässä tapauksessa sijainnin laskeminen alkaa
ei taulukon alusta, vaan lopusta. Viimeinen elementti
tällöin on indeksissä -1.
Syntaksi
taulukko.splice(mistä poistetaan, kuinka monta poistetaan, [lisää], [lisää]...);
Esimerkki
Poistetaan kolme elementtiä, aloittaen ensimmäisestä:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(1, 3);
console.log(arr);
Koodin suorituksen tulos:
['a', 'e']
Esimerkki
Tuodaan esiin poistettujen elementtien taulukko:
let arr = ['a', 'b', 'c', 'd', 'e'];
let del = arr.splice(1, 3);
console.log(del);
Koodin suorituksen tulos:
['b', 'c', 'd']
Esimerkki
Poistetaan ensin elementti indeksillä
2, ja sitten sen tilalle lisätään vielä
kolme uutta elementtiä:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1, '1', '2', '3');
console.log(arr);
Koodin suorituksen tulos:
['a', 'b', '1', '2', '3', 'd', 'e']
Esimerkki
Älkäämme nyt poistako mitään, mutta
sijaintiin 2, lisätään kolme uutta
elementtiä:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 0, '1', '2', '3');
console.log(arr);
Koodin suorituksen tulos:
['a', 'b', '1', '2', '3', 'c', 'd', 'e']
Esimerkki . Negatiivinen arvo
Poistetaan toiseksi viimeinen elementti:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(-2, 1);
console.log(arr);
Koodin suorituksen tulos:
['a', 'b', 'c', 'e']