การเรียกใช้อิเทอเรเตอร์ใน JavaScript

การเรียกใช้อิเทอเรเตอร์แต่ละครั้งต่อเนื่องกัน ควรส่งคืนวัตถุที่มีโครงสร้างพิเศษ มาลองพิจารณาโครงสร้างนั้นกัน สมมติว่าเรามีอาร์เรย์:

javascriptlet arr = [1, 2, 3];

รับอิเทอเรเตอร์ของอาร์เรย์ เก็บไว้ในตัวแปร:

javascriptlet iter = arr[Symbol.iterator]();

ตอนนี้ในตัวแปรนี้มีวัตถุ ที่มีเมธอด next อยู่ เมธอดนี้จะส่งคืน วัตถุที่มีคีย์ value ซึ่งบรรจุ ค่าขององค์ประกอบ และคีย์ done ซึ่งบรรจุข้อมูลเกี่ยวกับว่า การวนรอบ จบลงแล้วหรือไม่:

javascriptconsole.log( iter.next() ); // {value: 1, done: false}

การเรียกเมธอด next ต่อเนื่องกัน จะให้องค์ประกอบถัดไปทุกครั้ง:

javascriptconsole.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}

และทันทีที่องค์ประกอบหมด เราจะเห็นค่าต่อไปนี้:

javascriptconsole.log( iter.next() ); // {value: undefined, done: true}
Задание 1

รับอิเทอเรเตอร์ของคอลเลกชัน Map เรียกใช้มันต่อเนื่องกัน จนกว่าองค์ประกอบของคอลเลกชันจะหมด

Задание 2

รับอิเทอเรเตอร์ของคอลเลกชัน NodeList เรียกใช้มันต่อเนื่องกัน จนกว่าองค์ประกอบของคอลเลกชันจะหมด

Задание 3

รับอิเทอเรเตอร์ของคอลเลกชัน HTMLCollection เรียกใช้มันต่อเนื่องกัน จนกว่าองค์ประกอบของคอลเลกชันจะหมด