JavaScript හි iterator ඇමතුම්
Iterator හි සෑම අනුක්රමික ඇමතුමක්ම විශේෂ ව්යුහයක් සහිත වස්තුවක් ආපසු ලබා දිය යුතුය. අපි එය සලකා බලමු. අපට අරාවක් ඇතැයි සිතමු:
let arr = [1, 2, 3];
අරාවේ iterator එක විචල්යයකට ලබා ගනිමු:
let iter = arr[Symbol.iterator]();
දැන් මෙම විචල්යය තුළ
next ක්රමය සහිත වස්තුවක්
අඩංගු වේ. මෙම ක්රමය
value යතුරක්, එහි
මූලද්රව්යයේ අගය අඩංගු කරමින්ද, සහ done යතුරක්,
එයින් අවසන් වී ඇතිද යන්න පිළිබඳ තොරතුරු
අඩංගු කරමින්ද, ආපසු ලබා දෙන වස්තුවක්
ආපසු ලබා දෙනු ඇත:
console.log( iter.next() ); // {value: 1, done: false}
next ක්රමයේ අනුක්රමික ඇමතුම
සෑම අවස්ථාවකම ඊළඟ
මූලද්රව්යය ලබා දෙනු ඇත:
console.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}
මූලද්රව්ය අවසන් වූ විගසම, අපි පහත අගයන් දකිනු ඇත:
console.log( iter.next() ); // {value: undefined, done: true}
Map එකතුවේ iterator එක ලබා ගන්න.
එකතුවේ මූලද්රව්ය අවසන් නොවන තෙක්
එය අනුක්රමිකව අමතන්න.
NodeList එකතුවේ iterator එක ලබා ගන්න.
එකතුවේ මූලද්රව්ය අවසන් නොවන තෙක්
එය අනුක්රමිකව අමතන්න.
HTMLCollection එකතුවේ iterator එක ලබා ගන්න.
එකතුවේ මූලද්රව්ය අවසන් නොවන තෙක්
එය අනුක්රමිකව අමතන්න.