Оператори spread ва итераторҳо дар JavaScript
Оператори spread ҳар як объектеро,
ки итератор дорад, ҷудо мекунад. Дар ин ҳолат
итератори пешфарз гирифта мешавад. Биёед
ба мисол назар кунем. Фарз мекунем, ки мо
коллексияи зерини Map-ро дорем:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Ба таври пешфарз вақти ҷудосозӣ, массив ба ду андоза пайдо мешавад:
let arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Барои гирифтани массиви калидҳо, итератори мувофиқро ҷудо мекунем:
let arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
Ба ҳамин монанд барои гирифтани массиви қиматҳо амал мекунем:
let arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Объекти зеринро бо spread ҷудо кунед:
let obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};