Hướng dẫn dùng iteratoin JavaScript

Một số khái niệm

Iterator và iterator result

Iterator là 1 object có thể lấy ra lần lượt các iterator result, implement method next[] và bằng cách gọi method next[] có thể trả về iterator result. Giá trị trả về này là 1 object có chứa thuộc tính done cho biết có thể đã kết thúc chuỗi iterated sequence hay chưa và thuộc tính value để biểu thị giá trị.

Dưới đây là 1 ví dụ minh họa về iterator và iterator result

var it = {}; // iterator
it.next = function[]{
    var r = { value: 5, done: false }; // iterator result
    return r;
};

Iterable object

Iterable object là 1 object có chứa iterator. Cụ thể khi gọi [Symbol.iterator][] sẽ trả về iterator của object đó

var it = {}; // iterator
it.next = function[]{
    var r = { value: 5, done: false }; // iterator result
    return r;
};
var obj = {}; // iterable object
obj[Symbol.iterator] = function[]{
    return iterator;
};

Sử dụng iterator

Tạo 1 iterable object

Xét 1 ví dụ đơn giản tạo 1 iteratable object có thể lấy ra các số nguyên từ 1 đến 5.

Dựa theo các khái niệm đã nói ở trên, ta cần tạo 1 object obj mà khi gọi obj[Symbol.iterator] sẽ trả về iterator. Iterator đố cần định nghĩa method next để có thể lấy được phấn tử tiếp theo.

var obj = {}; // iterable object
obj[Symbol.iterator] = function[]{
    var it = {}; // iterator
    var count = 1;
    it.next = function[]{
        var r = [count  [0, "A", false, "x", "y", "z"]

Truyền iterable object như tham số

var nums = [104, 101, 108, 108, 111];
console.log[ Math.max[...nums] ];
console.log[ String.fromCharCode[...nums] ];
=>
111
hello

Phép gán

Javascript cho phép cú pháp [a ,b ,c ] = iterable để gán lần lượt giá trị của iterable object vào các biến theo thứ tự

var [a, b, c] = "hai";
console.log[c+b+a];
=> iah

Bài Viết Liên Quan

Chủ Đề