Array.prototype.splice()

by 3 colaboradores:

Resumo

O método splice() altera o conteúdo de uma lista, adicionando novos elementos enquanto remove elementos antigos.

Sintaxe

array.splice(índice , quantos[, elemento1[, ...[, elementoN]]])

array.splice(índice) // 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..
quantos
Um inteiro indicando o número de antigos elementos que devem ser removidos. Se quantos é 0, nenhum elemento é removido. Neste caso você deve especificar pelo menos um novo elemento. Se quantos é 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 quantos 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 ídice 2, e insere "drum"
var removed = myFish.splice(2, 0, "drum");
//myFish é ["angel", "clown", "drum", "mandarin", "surgeon"]
//removd é [], nenhum elemento removido

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

//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 6 (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Release Candidate  

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 quantos é 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.

Veja Também

  • push / pop - adiciona/remove elementos do final do array;
  • unshift / shift - adiciona/remove elementos do início do array;
  • concat - returns a new array comprised of this array joined with other array(s) and/or value(s).

Etiquetas do documento e colaboradores

Etiquetas: 
Contributors to this page: wbruno, teoli, cirocosta
Última atualização por: wbruno,
Esconder painel