| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | [Back] [Original] |
Get to know MDN better
Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julho de 2015.
O mtodo slice() retorna uma cpia de parte de um array a partir de um subarray criado entre as posies incio e fim (fim no includo) de um array original. O Array original no modificado.
const animals = ["ant", "bison", "camel", "duck", "elephant"];
console.log(animals.slice(2));
// Expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// Expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// Expected output: Array ["bison", "camel", "duck", "elephant"]
console.log(animals.slice(-2));
// Expected output: Array ["duck", "elephant"]
console.log(animals.slice(2, -1));
// Expected output: Array ["camel", "duck"]
console.log(animals.slice());
// Expected output: Array ["ant", "bison", "camel", "duck", "elephant"]
arr.slice([incio[,fim]])
incio Optionalndice baseado em zero no qual se inicia a extrao.
Como um ndice negativo, incio indica um deslocamento em relao ao fim da sequncia. slice(-2) extrai os dois ltimos elementos do array.
Se incio for omitido, slice inicia a partir do ndice 0.
Se incio for maior que o comprimento do array, retornado um array vazio.
fim Optionalndice baseado em zero o qual o final da extrao. slice extrai at, no incluindo, fim.
slice(1,4) extrai do segundo at o quarto elemento (elementos de ndice 1, 2 e 3).
Como ndice negativo, fim indica um deslocamento em relao ao fim do array. slice(2,-1) extrai o terceiro elemento atravs do segundo-para-o-ltimo elemento no array.
Se fim for omitido ou for maior que o tamanho do array, slice considerar o ltimo elemento do array como sendo o fim (arr.length).
Um novo array contendo os elementos extrados.
slice no altera o array original. Retorna uma cpia de elementos do array original. Elementos do array original so copiados para o array retornado da seguinte maneira:
slice copia referencias de objeto em um novo array. Ambos, o original e o novo array referem-se ao mesmo objeto. Se um objeto referenciado alterado, as alteraes so visiveis em ambos, no novo array e no array original.String e Number), slice copia strings e nmeros em um novo array. Alteraes na string ou nmero em um array no afetam o outro array.Se um novo elemento adicionado a qualquer array, o outro no afetado.
// Exemplo para extrair 'Laranja' e 'Limao' do array frutas
var frutas = ["Banana", "Laranja", "Limao", "Ma", "Manga"];
var citricos = frutas.slice(1, 3);
// citricos contem ['Laranja','Limao']
sliceNo exemplo seguinte, slice cria um novo array, novoCarro, do original meuCarro. Ambos incluem uma referncia ao objeto, meuHonda. Quando a cor de meuHonda alterada para roxo, ambos os arrays sofrem alterao.
// Usando slice para criar novoCarro a partir de meuCarro.
var meuHonda = {
cor: "vermelho",
rodas: 4,
motor: { cilindros: 4, tamanho: 2.2 },
};
var meuCarro = [meuHonda, 2, "perfeitas condies", "comprado em 1997"];
var novoCarro = meuCarro.slice(0, 2);
// Exibe os valores de meuCarro, novoCarro, e a cor de meuHonda
// referenciado de ambos arrays.
console.log("meuCarro = " + meuCarro.toSource());
console.log("novoCarro = " + novoCarro.toSource());
console.log("meuCarro[0].cor = " + meuCarro[0].cor);
console.log("novoCarro[0].cor = " + novoCarro[0].cor);
// Altera a cor de meuHonda.
meuHonda.cor = "roxo";
console.log("A nova cor do meu Honda " + meuHonda.cor);
// Exibe a cor de meuHonda referenciado de ambos arrays.
console.log("meuCarro[0].cor = " + meuCarro[0].cor);
console.log("novoCarro[0].cor = " + novoCarro[0].cor);
Esse script escreve:
meuCarro = [{cor:'vermelho', rodas:4, motor:{cilindros:4, tamanho:2.2}}, 2,'perfeitas condies', 'comprado em 1997']
novoCarro = [{cor:'vermelho', rodas:4, motor:{cilindros:4, tamanho:2.2}},2]
meuCarro[0].cor = vermelho
novoCarro[0].cor = vermelho
A nova cor do meu Honda roxo
meuCarro[0].cor = roxo
novoCarro[0].cor = roxo
O mtodo slice pode tambm ser chamado para converter objetos ou colees Array-like em um novo Array. Voc s precisa encadear o mtodo no Array. Os arguments dentro de uma funo so um exemplo de 'objeto array-like'.
function list() {
return Array.prototype.slice.call(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]
Ligaes podem ser feitas com a funo .call de Function and it can also be reduced using [].slice.call(arguments) ao invs de Array.prototype.slice.call. De qualquer forma, ela pode ser simplificada com bind.
var unboundSlice = Array.prototype.slice;
var slice = Function.prototype.call.bind(unboundSlice);
function list() {
return slice(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]
Embora os objetos de host (como objetos DOM) no sejam obrigados pela especificao a seguir o comportamento do Mozilla quando convertidos por Array.prototype.slice e IE <9 no o fazem, verses do IE comeando pela verso 9 permitem isso. "Shimming" pode permitir um comportamento confivel entre navegadores. Enquanto outros navegadores modernos continuem suportando essa habilidade, como atualmente IE, Mozilla, Chrome, Safari, e Opera fazem, desenvolvedores lendo (DOM-supporting) o cdigo slice confiando neste shim no sero desencaminhados pela semntica; eles podem confiar seguramente na semntica para fornecer o agora aparentemente comportamento padro de fato. (Isso tambm corrige o problema com IE < 9 onde o segundo argumento do slice era explicitamente null/undefined)
(function () {
"use strict";
var _slice = Array.prototype.slice;
try {
// Produzir erro no IE < 9
_slice.call(document.documentElement);
} catch (e) {
// Funciona para arrays, objetos array-like,
// NamedNodeMap (atributos, entidades, notaes),
// NodeList (por exemplo, getElementsByTagName), HTMLCollection (por exemplo, childNodes),
// e no vai falhar em outros objetos do DOM (como falham no IE < 9)
Array.prototype.slice = function (begin, end) {
end = typeof end !== "undefined" ? end : this.length;
// Para arrays, chamamos o mtodo nativo
if (Object.prototype.toString.call(this) === "[object Array]") {
return _slice.call(this, begin, end);
}
// Para array-like, o processo manual.
var i,
cloned = [],
size,
len = this.length;
// Lidando com valor negativo para "begin"
var start = begin || 0;
start = start >= 0 ? start : Math.max(0, len + start);
// Lidando com valor negativo para "end"
var upTo = typeof end == "number" ? Math.min(end, len) : len;
if (end < 0) {
upTo = len + end;
}
// Tamanho real do corte feito pelo slice
size = upTo - start;
if (size > 0) {
cloned = new Array(size);
if (this.charAt) {
for (i = 0; i < size; i++) {
cloned[i] = this.charAt(start + i);
}
} else {
for (i = 0; i < size; i++) {
cloned[i] = this[start + i];
}
}
}
return cloned;
};
}
})();
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.slice |
This page was last modified on 22 de mai. de 2026 by MDN contributors.
ArrayArray.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()findLast()findLastIndex()Array.prototype.flat()Array.prototype.flatMap()Array.prototype.forEach()Array.prototype.includes()Array.prototype.indexOf()Array.prototype.join()Array.prototype.keys()Array.prototype.lastIndexOf()Array.prototype.map()Array.prototype.pop()Array.prototype.push()Array.prototype.reduce()Array.prototype.reduceRight()Array.prototype.reverse()Array.prototype.shift()Array.prototype.slice()Array.prototype.some()Array.prototype.sort()Array.prototype.splice()Array.prototype.toLocaleString()toReversed()toSorted()toSpliced()Array.prototype.toString()Array.prototype.unshift()Array.prototype.values()with()Array.prototype[@@iterator]()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |