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