JavaScript Iterables

JavaScript மீளக்கூடிய பொருள்களைக் கற்றுக்கொள்ளுங்கள்

JavaScript Iterables

ஒரு மீளக்கூடிய பொருள் என்பது for...of லூப்கள் மூலம் மீள்வு செய்யக்கூடிய ஒரு பொருள் ஆகும்.

மீளக்கூடியது for...of லூப்களுடன் மீள்வு செய்யப்படலாம்.

The for...of Loop

JavaScript for..of அறிக்கை ஒரு மீளக்கூடிய பொருளின் உறுப்புகள் வழியாக லூப் செய்கிறது.

Syntax

for (variable of iterable) {
  // செயல்படுத்த வேண்டிய குறியீட்டு தொகுதி
}

மீள்வு

மீள்வு என்பது உறுப்புகளின் ஒரு வரிசை மீது லூப் செய்வதாகும்.

இங்கே சில எடுத்துக்காட்டுகள்:

சரம் மீது மீள்வு

ஒரு சரத்தின் உறுப்புகள் மீது மீள்வு

வரிசை மீது மீள்வு

ஒரு வரிசையின் உறுப்புகள் மீது மீள்வு

Set மீது மீள்வு

ஒரு Set இன் உறுப்புகள் மீது மீள்வு

Map மீது மீள்வு

ஒரு Map இன் உறுப்புகள் மீது மீள்வு

சரம் மீது மீள்வு

ஒரு சரத்தின் உறுப்புகள் மீது மீள்வதற்கு நீங்கள் for...of லூப்பைப் பயன்படுத்தலாம்:

Example

const name = "Jassif Team";

for (const x of name) {
  // செயல்படுத்த வேண்டிய குறியீட்டு தொகுதி
}

வரிசை மீது மீள்வு

ஒரு வரிசையின் உறுப்புகள் மீது மீள்வதற்கு நீங்கள் for...of லூப்பைப் பயன்படுத்தலாம்:

Example 1

const letters = ["a","b","c"];

for (const x of letters) {
  // செயல்படுத்த வேண்டிய குறியீட்டு தொகுதி
}

Example 2

const numbers = [2,4,6,8];

for (const x of numbers) {
  // செயல்படுத்த வேண்டிய குறியீட்டு தொகுதி
}

Set மீது மீள்வு

ஒரு Set இன் உறுப்புகள் மீது மீள்வதற்கு நீங்கள் for...of லூப்பைப் பயன்படுத்தலாம்:

Example

const letters = new Set(["a","b","c"]);

for (const x of letters) {
  // செயல்படுத்த வேண்டிய குறியீட்டு தொகுதி
}

Map மீது மீள்வு

ஒரு Map இன் உறுப்புகள் மீது மீள்வதற்கு நீங்கள் for...of லூப்பைப் பயன்படுத்தலாம்:

Example

const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

for (const x of fruits) {
  // செயல்படுத்த வேண்டிய குறியீட்டு தொகுதி
}

JavaScript Iterators

மீள்வு நெறிமுறை ஒரு பொருளிலிருந்து மதிப்புகளின் வரிசையை எவ்வாறு உருவாக்குவது என்பதை வரையறுக்கிறது.

ஒரு பொருள் next() முறையை செயல்படுத்தும்போது மீள்வியாக மாறுகிறது.

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

பண்பு விளக்கம்
value மீள்வியால் திரும்பப் பெறப்பட்ட மதிப்பு
(done true ஆக இருந்தால் தவிர்க்கலாம்)
done மீள்வி முடிந்தால் true
மீள்வி ஒரு புதிய மதிப்பை உருவாக்கியால் false

💡 தொழில்நுட்ப குறிப்பு:

தொழில்நுட்ப ரீதியாக, மீளக்கூடியவை Symbol.iterator முறையை செயல்படுத்த வேண்டும்.

JavaScript இல் மீளக்கூடியவை

JavaScript இல் பின்வருவன மீளக்கூடியவை:

சரங்கள் (Strings)
வரிசைகள் (Arrays)
தட்டையான வரிசைகள் (Typed Arrays)
Sets
Maps

காரணம்: அவற்றின் முன்னுதாரணப் பொருள்கள் Symbol.iterator முறையைக் கொண்டுள்ளன.

வீட்டில் உருவாக்கப்பட்ட மீளக்கூடிய

இந்த மீளக்கூடிய next() முறை அழைக்கப்படும் போது முடிவில்லா எண்களைத் தரும்: 10,20,30,40,....

Example

// வீட்டில் உருவாக்கப்பட்ட மீளக்கூடிய
function myNumbers() {
  let n = 0;
  return {
    next: function() {
      n += 10;
      return {value:n, done:false};
    }
  };
}

// மீளக்கூடியதை இயக்கவும்
const n = myNumbers();
n.next(); // 10 ஐத் தரும்
n.next(); // 20 ஐத் தரும்
n.next(); // 30 ஐத் தரும்

⚠️ குறிப்பு:

வீட்டில் உருவாக்கப்பட்ட மீளக்கூடியவை JavaScript for...of அறிக்கையை ஆதரிக்காது.

Symbol.iterator

ஒரு JavaScript மீளக்கூடிய என்பது Symbol.iterator ஐக் கொண்ட ஒரு பொருள் ஆகும்.

Symbol.iterator என்பது ஒரு next() செயல்பாட்டைத் தரும் ஒரு செயல்பாடு ஆகும்.

ஒரு மீளக்கூடிய பின்வரும் குறியீட்டுடன் மீள்வு செய்யப்படலாம்:

for (const x of iterable) {
  // இங்கே ஏதேனும் குறியீடு
}

Example

// ஒரு பொருளை உருவாக்கவும்
myNumbers = {};

// அதை மீளக்கூடியதாக மாற்றவும்
myNumbers[Symbol.iterator] = function() {
  let n = 0;
  done = false;
  return {
    next() {
      n += 10;
      if (n == 100) {done = true}
      return {value:n, done:done};
    }
  };
}

இப்போது நீங்கள் for..of ஐப் பயன்படுத்தலாம்:

for (const num of myNumbers) {
  // இங்கே ஏதேனும் குறியீடு
}

🔧 Symbol.iterator முறை:

Symbol.iterator முறை for..of மூலம் தானாகவே அழைக்கப்படுகிறது. ஆனால் நாம் அதை "கைமுறையாகவும்" செய்யலாம்:

Example

let iterator = myNumbers[Symbol.iterator]();

while (true) {
  const result = iterator.next();
  if (result.done) break;
  // இங்கே ஏதேனும் குறியீடு
}

முக்கிய குறிப்பு

🎯 மீள்விகளின் நன்மை:

மீள்விகள் தரவு வரிசைகளுடன் பணிபுரிய ஒரு கட்டுப்படுத்தப்பட்ட வழியை வழங்குகின்றன, பல்வேறு தரவு கட்டமைப்புகளுக்கு தனிப்பயன் மீள்வு தர்க்கத்தை இயலுமைப்படுத்துகின்றன.

அடுத்த அத்தியாயத்தில் ECMAScript 2025 இல் அறிமுகப்படுத்தப்பட்ட புதிய மீள்வி உதவி செயல்பாடுகளைப் பற்றி கற்றுக்கொள்வீர்கள்.

JavaScript Iterables பயிற்சி

பின்வரும் குறியீட்டைக் கவனியுங்கள்:

let firstname = 'Jim', i = 0;
for (const x of firstname) {
  i++;
}

i இன் மதிப்பு என்னவாக இருக்கும்?

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

0
✗ தவறு! 'Jim' சரத்தில் எழுத்துக்கள் உள்ளன
1
✗ தவறு! 'Jim' சரத்தில் 1 ஐ விட அதிகமான எழுத்துக்கள் உள்ளன
3
✓ சரி! 'Jim' சரத்தில் 3 எழுத்துக்கள் உள்ளன (J, i, m)
4
✗ தவறு! 'Jim' சரத்தில் 4 எழுத்துக்கள் இல்லை