Iterator JavaScript là gì

Khái niệm Iterables và Symbol.iterator trong JavaScript

By Thedevmind | Feb 13, 2021

Bài viết trước: Các hàm xử lý mảng [array] trong JavaScript

Iterables hay tính lặp là concept cho phép bạn duyệt qua bất kỳ object nào với vòng lặp [for..of]

Tất nhiên mảng có tính lặp, một số kiểu hay objects trong JavaScript cũng là iterable, như chuỗi [strings] chẳng hạn.

Nếu bạn có một object không phải là array, tuy nhiên object này vẫn biểu diễn một loạt các items gì đấy và bạn muốn lặp [duyệt] qua toàn bộ phần tử, chúng ta có thể biến object này thành iterable và sử dụng for..of.

Symbol.iterator cho phép chúng ta định nghĩa một object có khả năng sử dụng vòng lặp foreach và biến nó thành Iterable object.

Symbol.iterator

Để nắm được concept về iterables, hãy thử tự tạo một object không phải array nhưng vẫn có thể dùng for..of:

let range = { from: 1, to: 5 }; // for[let num of range] ... num=1,2,3,4,5

Chúng ta muốn lặp các số từ object.from đến object.to, để biến range thành iterable thì bạn cần phải thêm thuộc tính [Symbol.iterator] cho nó.

Chúng ta sẽ xem qua ví dụ và mình sẽ giải thích cách hoạt động sau:

let range = { from: 1, to: 5 }; range[Symbol.iterator] = function[] { return { current: this.from, last: this.to, if [this.current

Chủ Đề