Skip to content

Latest commit

 

History

History
190 lines (125 loc) · 4.91 KB

File metadata and controls

190 lines (125 loc) · 4.91 KB
# 🧩 JavaScript — Méthode `.slice()`

## 🔹 Description générale

La méthode **`.slice()`** permet d’extraire une portion d’un **tableau** ou d’une **chaîne de caractères**  
sans modifier la donnée d’origine.

C’est une méthode **immuable**, introduite dans **ECMAScript 3 (1999)**,  
et considérée comme **plus moderne et plus flexible** que `substring()`.

---

## ⚙️ Syntaxe

```js
array.slice(start, end);
string.slice(start, end);
  • start → Index de début (inclus)
  • end → Index de fin (exclu)
  • Si end est omis → la copie s’étend jusqu’à la fin
  • Les index négatifs partent depuis la fin de la chaîne ou du tableau

✅ Caractéristiques principales

Caractéristique Détail
🔁 Immuable Ne modifie jamais le tableau ou la chaîne originale
🧩 Polyvalente Fonctionne sur String et Array
🔢 Flexible Accepte les index négatifs
🧱 Stable Compatibilité totale avec tous les navigateurs modernes
⚙️ Introduite ECMAScript 3 (1999)

🧠 Différence avec substring() et substr()

Méthode Type compatible Index négatifs Inverse les index si start > end Statut
slice() String + Array ✅ Oui ❌ Non ✅ Recommandée
substring() String uniquement ❌ Non ✅ Oui Active mais ancienne
substr() String uniquement ✅ Oui ❌ Non ⚠️ Dépréciée

💡 Exemples d’utilisation

1. Extraire une partie d’un tableau

const students = ["Alice", "Bob", "Charlie", "David"];
const part = students.slice(1, 3);

console.log(part); // [ 'Bob', 'Charlie' ]
console.log(students); // [ 'Alice', 'Bob', 'Charlie', 'David' ] (inchangé)

2. Copier un tableau

const names = ["Emma", "Lucas", "Noah", "Olivia"];

// Copie complète sans modifier l’original
const copy = names.slice();

console.log(copy); // [ 'Emma', 'Lucas', 'Noah', 'Olivia' ]
console.log(copy === names); // false → copie indépendante

🧠 Astuce : .slice() sans argument est une manière simple de cloner un tableau.


3. Utiliser des index négatifs

const cities = ["Paris", "Lyon", "Marseille", "Toulouse", "Nice"];

console.log(cities.slice(-2)); // [ 'Toulouse', 'Nice' ]
console.log(cities.slice(-3, -1)); // [ 'Marseille', 'Toulouse' ]

4. Utilisation sur les chaînes de caractères

const message = "JavaScript est puissant";
console.log(message.slice(0, 10));  // "JavaScript"
console.log(message.slice(-9));     // "puissant"

5. Comparaison avec substring()

const str = "JavaScript";

console.log(str.slice(4, 2));      // ""  → rien, car start > end
console.log(str.substring(4, 2));  // "va" → inverse automatiquement

🔍 Cas pratiques

Copier un tableau pour le modifier sans affecter l’original

const numbers = [1, 2, 3];
const copy = numbers.slice();

copy.push(4);

console.log(numbers);  // [1, 2, 3]
console.log(copy);     // [1, 2, 3, 4]

Créer une sous-chaîne à partir d’un index

const text = "Bonjour le monde";
console.log(text.slice(8)); // "le monde"

Extraire les 3 derniers éléments d’un tableau

const scores = [12, 19, 22, 30, 41, 55];
const lastThree = scores.slice(-3);
console.log(lastThree); // [30, 41, 55]

🧩 Visualisation des index

const str = "JavaScript";

Index :  0 1 2 3 4 5 6 7 8 9
Lettre:  J a v a S c r i p t

str.slice(0, 4)  → "Java"
str.slice(4, 10) → "Script"
str.slice(-6)    → "Script"

🧭 En résumé

Utilisation Exemple Résultat
Copier tout le tableau arr.slice() Copie indépendante
Extraire une partie arr.slice(1, 3) [élément1, élément2]
Depuis la fin arr.slice(-2) Les 2 derniers éléments
Sur une chaîne "JavaScript".slice(4) "Script"

🧩 Règle d’or

🔹 Utilise slice() par défaut. Elle est immuable, polyvalente (tableaux + chaînes), et plus sûre que substring() ou substr() qui est déprécié.


📘 Résumé court :

slice() = simple, propre, et universelle. → La méthode à retenir pour copier, découper ou extraire sans risque.