Array.prototype.splice()

U leest de Engelstalige versie van deze inhoud, omdat er nog geen vertaling voor deze taal beschikbaar is. Help ons dit artikel te vertalen!

De splice()-methode past de inhoud van een array aan door bestaande elementen te verwijderen en/of nieuwe elementen toe te voegen.

Syntax

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

Parameters

start
Positie vanwaar de array dient te worden veranderd (met eerste element op 0). Indien groter dan de lengte van de array zal de start worden omgezet naar de lengte van de array. Indien negatief begint hij het absolute aantal vanaf het einde van de array.
deleteCount
Een getal dat aanduidt hoeveel elementen moeten worden verwijderd. Indien 0 worden er geen elementen verwijderd. In dit geval moet minstens één toe te voegen element worden meegeven. Als de deleteCount groter is dan het overige aantal elementen in de array (beginnend bij de startwaarde) worden al deze overige elementen verwijderd.
Indien de deleteCount niet wordt meegegeven, wordt deze als volgt berekend: (arr.length - start). Dit heeft als resultaat dat alle elementen na de startwaarde worden verwijderd.
item1, item2, ...
De elementen die in de array moeten worden toegevoegd, beginnend op de positie van de start -waarde. Indien niet meegegeven zullen er enkel elementen uit de array verwijderd worden.

Retourwaarde

Een array die de verwijderde items bevat. Wanneer slechts één element is verwijderd, wordt er een array teruggegeven met één element. Wanneer er geen elementen zijn verwijderd, wordt een lege array teruggegeven.

Omschrijving

Wanneer een ander aantal elementen wordt ingevoegd dan het aantal elementen dat wordt verwijderd, zal de array een andere lengte hebben na afloop van de aanroep.

Voorbeelden

Gebruik van splice()

The following script illustrates the use of splice():

var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

// removes 0 elements from index 2, and inserts 'drum'
var removed = myFish.splice(2, 0, 'drum');
// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// removed is [], no elements removed

// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon'] 
// removes 1 element from index 3
removed = myFish.splice(3, 1);
// myFish is ['angel', 'clown', 'drum', 'surgeon']
// removed is ['mandarin']

// myFish is ['angel', 'clown', 'drum', 'surgeon'] 
// removes 1 element from index 2, and inserts 'trumpet'
removed = myFish.splice(2, 1, 'trumpet');
// myFish is ['angel', 'clown', 'trumpet', 'surgeon']
// removed is ['drum']

// myFish is ['angel', 'clown', 'trumpet', 'surgeon'] 
// removes 2 elements from index 0, and inserts 'parrot', 'anemone' and 'blue'
removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// myFish is ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// removed is ['angel', 'clown']

// myFish is ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'] 
// removes 2 elements from index 2
removed = myFish.splice(myFish.length -3, 2);
// myFish is ['parrot', 'anemone', 'surgeon']
// removed is ['blue', 'trumpet']

const myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'];
// removes 3 elements starting at index 2
const removed = myFish.splice(2);
// myFish is ['parrot', 'anemone']
// removed is ['blue', 'trumpet', 'surgeon']

Specificaties

Specification Status Comment
ECMAScript 3rd Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Draft  

Browser-compatibiliteit

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 1.0 (1.7 or earlier) 5.5 (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Compatibiliteit met oudere versies

In JavaScript 1.2 retourneert de splice()-methode het verwijderde element, wanneer slechts één element is verwijderd (deleteCount parameter is 1); in andere gevallen retourneert de methode een array met de verwijderde elementen.

Ter info: De laatste browser die gebruik maakte van JavaScript 1.2 was Netscape Navigator 4, dus er kan altijd worden verwacht dat  splice() altijd een array retourneert. Dit is het geval wanneer een JavaScript-object een  length-property heeft  en een  splice()-method. console.log() werkt op dit object als op een Array-acthig object. Het object controleren met instanceof Array retourneert false.

Zie ook

  • push() / pop() — voeg elementen toe/verwijder elementen vanaf het eind van de array
  • unshift() / shift() — voeg elementen toe/verwijder elementen vanaf het begin van de array
  • concat() — retourneer een nieuw array samengesteld uit waarden van dit array en andere arrays of waarden