Iterator của đối tượng trong JavaScript
Hãy tạo một iterator, với sự trợ giúp của nó có thể lặp qua một đối tượng. Đầu tiên, hãy tạo một generator, tham số nhận vào là một đối tượng và lặp qua nó:
function *func(obj) {
for (let key in obj) {
yield obj[key];
}
}
Bây giờ hãy tạo iterator:
let iter = func({a: 1, b: 2, c: 3});
Lặp qua iterator bằng vòng lặp:
for (let elem of iter) {
console.log(elem); // 1, 2, 3
}
Hãy tạo một iterator, sẽ lặp qua đối tượng và mỗi lần gọi trả về một mảng, trong phần tử thứ 0 sẽ chứa key, và ở phần tử thứ nhất - giá trị của phần tử đối tượng. Ví dụ:
let iter = func({a: 1, b: 2, c: 3});
for (let elem of iter) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}