Opérateur spread et itérateurs en JavaScript
L'opérateur spread décompose tout objet
qui possède un itérateur. L'itérateur
par défaut sera utilisé. Regardons
un exemple. Supposons que nous ayons
la collection Map suivante :
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Par défaut, la décomposition donnera un tableau bidimensionnel :
let arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Pour obtenir un tableau de clés, décomposons l'itérateur correspondant :
let arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
Procédons de manière analogue pour obtenir un tableau de valeurs :
let arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Décomposez avec le spread l'objet suivant :
let obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};