The Iterator Object
ஒரு மீள்வி என்பது உறுப்புகளை வரிசைப்படுத்தப்பட்ட முறையில் அணுகுவதற்கு ஒரு தரமான வழியை வழங்கும் ஒரு பொருள் ஆகும்.
ஒரு மீள்வி மீள்வி நெறிமுறையைப் பின்பற்ற வேண்டும்: அதற்கு next() முறை இருக்க வேண்டும்.
The next() Method
next() முறை இரண்டு பண்புகளைக் கொண்ட ஒரு பொருளைத் தரும்:
The For Of Loop
JavaScript for..of அறிக்கை ஒரு மீளக்கூடிய பொருளின் உறுப்புகள் வழியாக லூப் செய்கிறது.
Syntax
for (variable of iterable) {
// செயல்படுத்த வேண்டிய குறியீட்டு தொகுதி
}
தொழில்நுட்ப குறிப்பு:
தொழில்நுட்ப ரீதியாக, மீளக்கூடியவை Symbol.iterator முறையை செயல்படுத்த வேண்டும்.
JavaScript இல் மீளக்கூடியவை
JavaScript இல் பின்வருவன மீளக்கூடியவை:
சரங்கள்
Strings
வரிசைகள்
Arrays
தட்டையான வரிசைகள்
Typed Arrays
Sets
Sets
Maps
Maps
காரணம்: அவற்றின் முன்னுதாரணப் பொருள்கள் Symbol.iterator முறையைக் கொண்டுள்ளன.
மீள்விகளின் நன்மைகள்
மீள்விகள் தரவு வரிசைகளுடன் பணிபுரிய ஒரு கட்டுப்படுத்தப்பட்ட வழியை வழங்குகின்றன, பல்வேறு தரவு கட்டமைப்புகளுக்கு தனிப்பயன் மீள்வு தர்க்கத்தை இயலுமைப்படுத்துகின்றன.
அவை குறிப்பாக பின்வருவனவற்றிற்கு மிகவும் பயனுள்ளதாக இருக்கின்றன:
உதவி செயல்பாடுகள்
JavaScript 2025 (ECMAScript 2025) JavaScript இல் மீள்விகளின் செயல்பாட்டை கணிசமாக மேம்படுத்தும் புதிய மீள்வி உதவி முறைகளின் தொகுப்பை அதிகாரப்பூர்வமாக அங்கீகரித்தது.
இந்த முறைகள் அவற்றை முதலில் வரிசைகளாக மாற்றாமலேயே நேரடி கையாளுதல் மற்றும் மாற்றத்தை அனுமதிப்பதன் மூலம், மீளக்கூடிய பொருள்கள் மற்றும் ஜெனரேட்டர்களுடன் பணிபுரிய மிகவும் செயல்பாட்டு மற்றும் திறமையான வழியை வழங்குகின்றன:
| செயல்பாடு | விளக்கம் |
|---|---|
drop() |
குறிப்பிட்ட எண்ணிக்கையிலான உறுப்புகளைத் தவிர்த்துவிட்டு மீதமுள்ளவற்றை வழங்கும் ஒரு மீள்வியைத் தரும் |
every() |
அனைத்து உறுப்புகளும் ஒரு சோதனை செயல்பாட்டை திருப்திப்படுத்தினால் true ஐத் தரும் |
filter() |
ஒரு வடிகட்டி செயல்பாட்டை திருப்திப்படுத்தும் உறுப்புகளைக் கொண்ட ஒரு மீள்வியைத் தரும் |
find() |
ஒரு சோதனை செயல்பாட்டை திருப்திப்படுத்தும் முதல் உறுப்பைத் தரும் |
flatMap() |
ஒவ்வொரு உறுப்பையும் மேப்பிங் செய்து, பின்னர் முடிவுகளை ஒரு மீள்வியாக சமன்படுத்துவதன் மூலம் ஒரு புதிய மீள்வியைத் தரும் |
forEach() |
மீள்வியில் உள்ள ஒவ்வொரு உறுப்புக்கும் ஒரு செயல்பாட்டை ஒரு முறை செயல்படுத்துகிறது |
from() |
ஒரு மீளக்கூடியதிலிருந்து ஒரு மீள்வி பொருளை உருவாக்குகிறது |
map() |
ஒரு மேப் செயல்பாட்டின் மூலம் மாற்றப்பட்ட அனைத்து உறுப்புகளையும் கொண்ட ஒரு மீள்வியைத் தரும் |
reduce() |
ஒரு ஒற்றை மதிப்பாகக் குறைக்க ஒரு குவிப்பான் மற்றும் ஒவ்வொரு உறுப்புக்கும் எதிராக ஒரு reducer செயல்பாட்டைப் பயன்படுத்துகிறது |
some() |
குறைந்தபட்சம் ஒரு உறுப்பு ஒரு சோதனை செயல்பாட்டை திருப்திப்படுத்தினால் true ஐத் தரும் |
take() |
குறிப்பிட்ட எண்ணிக்கையிலான உறுப்புகளை வழங்கும் ஒரு மீள்வியைத் தரும் |
The Iterator.from() Method
Iterator.from() முறை ஒரு இருக்கும் மீளக்கூடிய அல்லது மீள்வி பொருளிலிருந்து ஒரு மீள்வி பொருளை உருவாக்குகிறது.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from([1, 2, 3]);
// உறுப்புகள் மீது மீள்வு செய்யவும்
let text = "";
for (const x of myIterator) {
text += x;
}
The drop() Method
drop() முறை குறிப்பிட்ட எண்ணிக்கையிலான உறுப்புகளைத் தவிர்த்துவிட்டு மீதமுள்ளவற்றை வழங்கும் ஒரு புதிய மீள்வியைத் தரும்.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]);
// முதல் ஐந்தை நீக்கவும்
const firstFive = myIterator.drop(5);
The every() Method
every(fn) முறை மீள்வியில் உள்ள அனைத்து உறுப்புகளும் வழங்கப்பட்ட சோதனை செயல்பாட்டை திருப்திப்படுத்தினால் true ஐத் தரும்.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from("123456789");
// ஒவ்வொரு உறுப்பும் 7 ஐ விட பெரியதா?
let result = myIterator.every(x => x > 7);
The filter() Method
filter() முறை ஒரு வடிகட்டி செயல்பாட்டை திருப்திப்படுத்தும் உறுப்புகளைக் கொண்ட ஒரு புதிய மீள்வியைத் தரும்.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from([32, 33, 16, 40]);
// மீள்வியை வடிகட்டவும்
const filteredIterator = myIterator.filter(x => x > 18);
The find() Method
find(fn) முறை ஒரு சோதனை செயல்பாட்டை திருப்திப்படுத்தும் முதல் உறுப்பைத் தரும்.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from([3, 10, 18, 30, 20]);
// 18 ஐ விட பெரிய முதல் உறுப்பைக் கண்டறியவும்
let result = myIterator.find(x => x > 18);
The flatMap() Method
flatMap() முறை ஒவ்வொரு உறுப்பையும் மேப்பிங் செய்து, பின்னர் முடிவுகளை ஒரு மீள்வியாக சமன்படுத்துவதன் மூலம் ஒரு புதிய மீள்வியைத் தரும்.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]);
// மீள்வியை மேப் செய்யவும்
const mappedIterator = myIterator.flatMap(x => [x, x * 10]);
The forEach() Method
forEach() முறை மீள்வியில் உள்ள ஒவ்வொரு உறுப்புக்கும் வழங்கப்பட்ட செயல்பாட்டை ஒரு முறை செயல்படுத்துகிறது.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from("123456789");
// அனைத்து உறுப்புகள் மீதும் மீள்வு செய்யவும்
let text = "";
myIterator.forEach (x => text += x);
The map() Method
map() முறை ஒரு மேப் செயல்பாட்டின் மூலம் மாற்றப்பட்ட அனைத்து உறுப்புகளையும் கொண்ட ஒரு புதிய மீள்வியைத் தரும்.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from("123456789");
// இப்போது நீங்கள் map முறையைப் பயன்படுத்தலாம்
const mappedIterator = myIterator.map(x => x * 2);
The reduce() Method
reduce() முறை ஒரு ஒற்றை மதிப்பாகக் குறைக்க ஒரு குவிப்பான் மற்றும் ஒவ்வொரு உறுப்புக்கும் எதிராக ஒரு reducer செயல்பாட்டைப் பயன்படுத்துகிறது.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from([175, 50, 25]);
// மீள்வியைக் குறைக்கவும்
let result = myIterator.reduce(myFunc);
The some() Method
some() முறை குறைந்தபட்சம் ஒரு உறுப்பு வழங்கப்பட்ட சோதனை செயல்பாட்டை திருப்திப்படுத்தினால் true ஐத் தரும்.
Example
// ஒரு மீள்வியை உருவாக்கவும்
const myIterator = Iterator.from("123456789");
// சில உறுப்புகள் 7 ஐ விட பெரியதா?
let result = myIterator.some(x => x > 7);
The take() Method
take() முறை அதிகபட்சமாக குறிப்பிட்ட எண்ணிக்கையிலான உறுப்புகளை வழங்கும் ஒரு புதிய மீள்வியைத் தரும்.
Example
const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]);
// முதல் ஐந்து உறுப்புகளை எடுக்கவும்
const firstFive = myIterator.take(5);
முக்கிய குறிப்பு:
மீள்விகள் மீள்வு கருத்தை நேரடியாக மைய JavaScript மொழியில் கொண்டு வந்து for...of இன் நடத்தையைத் தனிப்பயனாக்குவதற்கான ஒரு பொறிமுறையை வழங்குகின்றன.
JavaScript Iterators பயிற்சி
பின்வரும் குறியீட்டைக் கவனியுங்கள்:
const myIterator = Iterator.from([1, 2, 3, 4, 5]);
const result = myIterator.filter(x => x % 2 === 0).take(2);
result மீள்வியிலிருந்து பெறப்பட்ட மதிப்புகள் என்ன?