| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La mthode slice() des instances Array retourne un copie superficielle d'une portion d'un tableau sous la forme d'un nouvel objet tableau slectionn de start end (end non incluse), o start et end reprsentent l'indice des lments dans ce tableau. Le tableau d'origine ne sera pas modifi.
const animals = ["ant", "bison", "camel", "duck", "elephant"];
console.log(animals.slice(2));
// Rsultat attendu : Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// Rsultat attendu : Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// Rsultat attendu : Array ["bison", "camel", "duck", "elephant"]
console.log(animals.slice(-2));
// Rsultat attendu : Array ["duck", "elephant"]
console.log(animals.slice(2, -1));
// Rsultat attendu : Array ["camel", "duck"]
console.log(animals.slice());
// Rsultat attendu : Array ["ant", "bison", "camel", "duck", "elephant"]
slice()
slice(start)
slice(start, end)
start FacultatifL'indice (compt partir de zro) partir duquel commencer l'extraction, converti en entier.
-array.length <= start < 0, on utilise start + array.length.start < -array.length ou si start est omis, 0 est utilis.start >= array.length, un tableau vide est retourn.end FacultatifL'indice (compt partir de zro) jusqu'auquel extraire le fragment, converti en entier. slice() extrait jusqu', mais sans inclure, end.
-array.length <= end < 0, on utilise end + array.length.end < -array.length, 0 est utilis.end >= array.length ou si end est omis ou vaut undefined, array.length est utilis, ce qui entrane l'extraction de tous les lments jusqu' la fin.end implique une position antrieure ou gale celle que start implique, un tableau vide est retourn.Un nouveau tableau contenant les lments extraits.
La mthode slice() est une mthode de copie. Elle n'altre pas this mais retourne plutt une copie superficielle contenant certains des mmes lments que le tableau d'origine.
La mthode slice() prserve les emplacements vides. Si la portion dcoupe constitue un tableau creux (tableau creux), le tableau retourn est galement creux.
La mthode slice() est gnrique. Elle suppose uniquement que la valeur de this possde une proprit length et des proprits dont les cls sont des entiers.
var fruits = ["Banane", "Orange", "Citron", "Pomme", "Mangue"];
var agrumes = fruits.slice(1, 3);
// fruits vaut --> ["Banane", "Orange", "Citron", "Pomme", "Mangue"]
// agrumes vaut --> ["Orange", "Citron"]
Dans cet exemple, slice(1, 3) extrait les lments partir de l'indice 1 jusqu', mais sans inclure, l'indice 3, ce qui donne un nouveau tableau ['Orange', 'Citron'].
endconst fruits = ["Pomme", "Banane", "Orange", "Mangue", "Ananas"];
const tropical = fruits.slice(2);
console.log(tropical); // ['Orange', 'Mangue', 'Ananas']
Dans cet exemple, slice(2) extrait les lments partir de l'indice 2 jusqu' la fin du tableau.
const fruits = ["Pomme", "Banane", "Orange", "Mangue", "Ananas"];
const lastTwo = fruits.slice(-2);
console.log(lastTwo); // ['Mangue', 'Ananas']
Dans cet exemple, slice(-2) extrait les deux derniers lments du tableau. Lorsqu'on utilise un indice ngatif avec la mthode slice, les indices ngatifs sont compts depuis la fin du tableau : -1 dsigne le dernier lment, -2 le prcdent, etc. L'indice ngatif -2 est inclus car il reprsente le point de dpart de l'extraction.
| | | | | | | S | L | I | C | E | | | | | | | -5 -4 -3 -2 -1 <--- lecture depuis la fin
const fruits = ["Pomme", "Banane", "Orange", "Mangue", "Ananas"];
// Utiliser un indice de dpart positif et un indice de fin ngatif
const sliceExample = fruits.slice(1, -1);
console.log(sliceExample); // ['Banane', 'Orange', 'Mangue']
Dans cet exemple, slice(1, -1) commence l'extraction l'indice 1 et s'arrte avant l'lment situ l'indice -1 (le dernier lment). Cela donne un nouveau tableau ['Banana', 'Orange', 'Mango']. La mthode slice exclut toujours l'lment situ l'indice final spcifi, qu'il soit positif ou ngatif.
lecture depuis le dbut ---> 0 1 2 3 4 | | | | | | | S | L | I | C | E | | | | | | | -5 -4 -3 -2 -1 <--- lecture depuis la fin
slice() avec des tableaux d'objetsDans l'exemple suivant, slice cre un nouveau tableau, newCar, partir de myCar. Les deux contiennent une rfrence l'objet myHonda. Lorsque la couleur de myHonda est change en "purple", les deux tableaux refltent cette modification.
// Avec slice, crer newCar depuis myCar
const myHonda = {
color: "rouge",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
const myCar = [myHonda, 2, "excellente condition", "achete en 1997"];
const newCar = myCar.slice(0, 2);
console.log("myCar =", myCar);
console.log("newCar =", newCar);
console.log("myCar[0].color =", myCar[0].color);
console.log("newCar[0].color =", newCar[0].color);
// Changer la couleur de myHonda.
myHonda.color = "bordeaux";
console.log("La nouvelle couleur de ma Honda est", myHonda.color);
console.log("myCar[0].color =", myCar[0].color);
console.log("newCar[0].color =", newCar[0].color);
Ce script affichera :
myCar = [
{ color: 'rouge', wheels: 4, engine: { cylinders: 4, size: 2.2 } },
2,
'excellente condition',
'achete en 1997'
]
newCar = [ { color: 'rouge', wheels: 4, engine: { cylinders: 4, size: 2.2 } }, 2 ]
myCar[0].color = rouge
newCar[0].color = rouge
La nouvelle couleur de ma Honda est bordeaux
myCar[0].color = bordeaux
newCar[0].color = bordeaux
slice() sur des objets qui ne sont pas des tableauxLa mthode slice() lit la proprit length de this. Elle lit ensuite les proprits dont les cls sont des entiers de start end et les dfinit sur un nouveau tableau cr.
const objetSimilaireTableau = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 33, // ignor par slice() car length vaut 3
};
console.log(Array.prototype.slice.call(objetSimilaireTableau, 1, 3));
// [ 3, 4 ]
slice() pour convertir des objets semblables des tableaux en tableauxLa mthode slice() est souvent utilise avec bind() et call() pour crer une mthode utilitaire qui convertit un objet semblable un tableau en un tableau.
// slice() est appel en passant `this` comme premier argument
const slice = Function.prototype.call.bind(Array.prototype.slice);
function list() {
return slice(arguments);
}
const listResult = list(1, 2, 3); // [1, 2, 3]
slice() sur des tableaux creuxLe tableau retourn par slice() peut tre creux si le tableau source est creux.
console.log([1, 2, , 4, 5].slice(1, 4)); // [2, vide, 4]
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.slice |
ArrayArray.prototype.pop()Array.prototype.shift()Array.prototype.concat()Array.prototype.splice()TypedArray.prototype.slice()String.prototype.slice()Array.prototype.slice dans core-js (angl.)Array.prototype.slice (angl.)Cette page a t modifie le 6 nov. 2025 par les contributeurices du MDN.
Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.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()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |