Resumo
O método splice() altera o conteúdo de uma lista, adicionando novos elementos enquanto remove elementos antigos.
Sintaxe
array.splice(index , deleteCount[, elemento1[, ...[, elementoN]]])
array.splice(index) // SpiderMonkey/Firefox extension
Parâmetros
índice
- Índice o qual deve iniciar a alterar a lista. Se maior que o tamanho total da mesma, nenhum elemento será alterado. Se negativo, irá iniciar a partir daquele número de elementos a partir do fim..
deleteCount
Um inteiro indicando o número de antigos elementos que devem ser removidos. Se deleteCount é 0, nenhum elemento é removido. Neste caso você deve especificar pelo menos um novo elemento. Se deleteCount é maior que o número de elementos restantes na lista iniciando pelo índice, então todos os elementos até o fim da lista serão deletados. Se o parâmetro deleteCount não é especificado, todos os elementos depois do índice são removidos.
elemento1, ..., elementoN
Os elementos a adicionar na lista. Se você não especificar nenhum elemento, splice simplesmente removerá elementos da mesma.
Retorno
Uma lista contendo os elementos removidos. Se apenas um elemento é removido, por exemplo, uma lista contendo apenas um elemento é retornada. Se nenhum elemento é removido, uma lista vazia é retornada.
Descrição
Se você especificar um número diferente de elementos a inserir comparado ao número de elementos que você está removendo, a lista terá um tamanho diferente no final da execução.
Exemplo
Exemplo: Usando splice()
O script a seguir ilustra o uso do splice:
var myFish = ["angel", "clown", "mandarin", "surgeon"]; //remove 0 elementos a partir do índice 2, e insere "drum" var removed = myFish.splice(2, 0, "drum"); //myFish é ["angel", "clown", "drum", "mandarin", "surgeon"] //removd é [], nenhum elemento removido //removes 1 elemento do índice 3 removed = myFish.splice(3, 1); //myFish is ["angel", "clown", "drum", "surgeon"] //removed is ["surgeon"] //remove 1 elemento a partir do índice 2, e insere "trumpet" removed = myFish.splice(2, 1, "trumpet"); //myFish é ["angel", "clown", "trumpet", "surgeon"] //removed é ["drum"] //remove 2 elementos a partir do índice 0, e insere "parrot", "anemone" e "blue" removed = myFish.splice(0, 2, "parrot", "anemone", "blue"); //myFish é ["parrot", "anemone", "blue", "trumpet", "surgeon"] //removed é ["angel", "clown"] //remove 2 elementos a partir do indice 3 removed = myFish.splice(3, Number.MAX_VALUE); //myFish é ["parrot", "anemone", "blue"] //removed é ["trumpet", "surgeon"]
Especificações
Especificação | Status | Comentário |
---|---|---|
ECMAScript 3rd Edition | Padrão | Definição inicial. Implementado no 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 |
Compatibilidade de Navegadores
Atributo | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Suporte Básico | 1.0 | 1.0 (1.7 or earlier) | 5.5 | (Yes) | (Yes) |
Atributo | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suporte Básico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Compatibilidade com Navegadores Antigos
O método splice retorna o elemento removido, se somente um elemento é removido (parâmetro deleteCount
é 1); caso contrário, o método retorna uma lista contendo os elementos removidos. Note que o último navegador a utilizar JavaScript 1.2 foi o Netscape Navigator 4, então você pode utilizar o splice esperando sempre retornar uma lista.