JavaScript Iterators

JavaScript மீள்விகளைக் கற்றுக்கொள்ளுங்கள்

The Iterator Object

ஒரு மீள்வி என்பது உறுப்புகளை வரிசைப்படுத்தப்பட்ட முறையில் அணுகுவதற்கு ஒரு தரமான வழியை வழங்கும் ஒரு பொருள் ஆகும்.

ஒரு மீள்வி மீள்வி நெறிமுறையைப் பின்பற்ற வேண்டும்: அதற்கு next() முறை இருக்க வேண்டும்.

The next() Method

next() முறை இரண்டு பண்புகளைக் கொண்ட ஒரு பொருளைத் தரும்:

value பண்பு மீள்வு வரிசையில் அடுத்த மதிப்பைக் கொண்டுள்ளது.
done பண்பு இன்னும் மீள்வு செய்ய வேண்டிய உறுப்புகள் இருந்தால் false ஐத் தரும், இல்லையெனில் true ஐத் தரும்.

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 மீள்வியிலிருந்து பெறப்பட்ட மதிப்புகள் என்ன?

சரியான பதிலைத் தேர்ந்தெடுக்கவும்:

[1, 2]
✗ தவறு! filter(x => x % 2 === 0) இரட்டை எண்களை மட்டுமே தேர்ந்தெடுக்கும்
[2, 4]
✓ சரி! filter இரட்டை எண்களைத் தேர்ந்தெடுக்கும் (2,4) மற்றும் take(2) முதல் இரண்டை எடுக்கும்
[2, 4, 5]
✗ தவறு! take(2) இரண்டு உறுப்புகளை மட்டுமே எடுக்கும், 5 இரட்டை எண்ணல்ல
[1, 3, 5]
✗ தவறு! filter(x => x % 2 === 0) இரட்டை எண்களை மட்டுமே தேர்ந்தெடுக்கும், ஒற்றை எண்களை அல்ல