ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் பண்புகள் மூலம் லூப்பிங்

ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் பண்புகள் மூலம் லூப்பிங்
JavaScript

ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் மறு செய்கையை ஆராய்கிறது

ஜாவாஸ்கிரிப்ட் பொருளின் பண்புகளை லூப் செய்வது டெவலப்பர்கள் எதிர்கொள்ளும் ஒரு பொதுவான பணியாகும். நீங்கள் விசைகள், மதிப்புகள் அல்லது இரண்டையும் அணுக வேண்டியிருந்தாலும், பொருள் பண்புகளை எவ்வாறு திறம்பட கணக்கிடுவது என்பதைப் புரிந்துகொள்வது முக்கியம்.

இந்த கட்டுரையில், ஒரு பொருளின் கூறுகளை மீண்டும் மீண்டும் செய்ய பல்வேறு முறைகளை ஆராய்வோம். முடிவில், உங்கள் ஜாவாஸ்கிரிப்ட் குறியீடு திறமையாகவும் படிக்கக்கூடியதாகவும் இருப்பதை உறுதிசெய்து, பொருள் கணக்கீட்டை எளிதாகக் கையாளும் அறிவைப் பெற்றிருப்பீர்கள்.

கட்டளை விளக்கம்
for...in ஒரு பொருளின் பண்புகள் மூலம் சுழல்கிறது, அனைத்து எண்ணிடக்கூடிய பண்புகளையும் மீண்டும் மீண்டும் செய்கிறது.
hasOwnProperty() பொருள் முன்மாதிரி சங்கிலி மூலம் மரபுரிமையாக இல்லாமல், ஒரு நேரடி சொத்து என குறிப்பிடப்பட்ட சொத்து உள்ளதா என சரிபார்க்கிறது.
Object.entries() கொடுக்கப்பட்ட பொருளின் சொந்த எண்ணக்கூடிய சொத்து [விசை, மதிப்பு] ஜோடிகளின் வரிசையை வழங்குகிறது.
Object.keys() கொடுக்கப்பட்ட பொருளின் சொந்த எண்ணக்கூடிய சொத்துப் பெயர்களின் வரிசையை வழங்குகிறது.
Object.values() கொடுக்கப்பட்ட பொருளின் சொந்த எண்ணக்கூடிய சொத்து மதிப்புகளின் வரிசையை வழங்குகிறது.
forEach() ஒவ்வொரு வரிசை உறுப்புக்கும் ஒருமுறை வழங்கப்பட்ட செயல்பாட்டை செயல்படுத்துகிறது.

ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் மறு செய்கை நுட்பங்களைப் புரிந்துகொள்வது

தி for...in லூப் என்பது ஒரு பொருளின் எண்ணிலடங்கா பண்புகளை மீண்டும் செய்யப் பயன்படும் ஒரு அடிப்படை ஜாவாஸ்கிரிப்ட் கட்டமைப்பாகும். உதாரண ஸ்கிரிப்ட்டில், for...in பொருளின் ஒவ்வொரு பண்புகளையும் லூப் செய்ய பயன்படுத்தப்படுகிறது p. வளையத்திற்குள், hasOwnProperty() சொத்து என்பது பொருளின் நேரடி சொத்து மற்றும் அதன் முன்மாதிரி சங்கிலியில் இருந்து பெறப்படவில்லை என்பதை உறுதிப்படுத்த பயன்படுகிறது. பொருள் மரபுரிமை பண்புகளைப் பெறும்போது எதிர்பாராத முடிவுகளைத் தவிர்க்க இது முக்கியமானது. லூப் பின்னர் பயன்படுத்தும் ஒவ்வொரு சொத்தின் விசையையும் மதிப்பையும் பதிவு செய்கிறது console.log, பொருளின் பண்புகளை திறம்பட கணக்கிடுகிறது.

நிரூபிக்கப்பட்ட மற்றொரு முறை பயன்படுத்தப்படுகிறது Object.entries(), இது பொருளின் சொந்த எண்ணக்கூடிய சொத்து [விசை, மதிப்பு] ஜோடிகளின் வரிசையை வழங்குகிறது. இந்த வரிசையை பயன்படுத்தி மீண்டும் மீண்டும் செய்யப்படுகிறது forEach(), ஒவ்வொரு வரிசை உறுப்புக்கும் ஒரு முறை வழங்கப்பட்ட செயல்பாட்டைச் செயல்படுத்தும் வசதியான வரிசை முறை. இந்த முறையானது ஒவ்வொரு மறு செய்கையிலும் உள்ள விசை மற்றும் மதிப்பு இரண்டையும் நேரடியாக அணுகுவதன் மூலம் குறியீட்டை எளிதாக்குகிறது, கணக்கீட்டு செயல்முறையை நேரடியாகவும் படிக்கக்கூடியதாகவும் ஆக்குகிறது. தி Object.keys() முறை இதேபோல் செயல்படுகிறது ஆனால் விசைகளை மட்டுமே வழங்குகிறது, பின்னர் அவை உள்ள தொடர்புடைய மதிப்புகளை அணுக பயன்படுகிறது forEach() வளைய.

கூடுதலாக, Object.values() பொருளின் மதிப்புகளின் வரிசையை வழங்கும் மற்றொரு பயனுள்ள முறையாகும். இந்த வரிசையில் மீண்டும் மீண்டும் செய்வதன் மூலம் forEach(), நாம் ஒவ்வொரு மதிப்பையும் நேரடியாக அணுகலாம் மற்றும் பதிவு செய்யலாம். இந்த முறைகள் -for...in, Object.entries(), Object.keys(), மற்றும் Object.values()- ஜாவாஸ்கிரிப்டில் பொருட்களைக் கையாளும் சக்திவாய்ந்த கருவிகள். வெவ்வேறு தேவைகள் மற்றும் விருப்பங்களைப் பூர்த்திசெய்து, பொருள் பண்புகளை நீங்கள் எவ்வாறு அணுகலாம் மற்றும் கையாளுகிறீர்கள் என்பதில் அவை நெகிழ்வுத்தன்மையை வழங்குகின்றன. ஒவ்வொரு முறைக்கும் அதன் நன்மைகள் உள்ளன, மேலும் அவற்றைப் புரிந்துகொள்வது டெவலப்பர்கள் தங்கள் குறிப்பிட்ட பயன்பாட்டு வழக்குக்கு மிகவும் பொருத்தமான ஒன்றைத் தேர்வுசெய்ய அனுமதிக்கிறது, இது திறமையான மற்றும் பயனுள்ள குறியீட்டை செயல்படுத்துவதை உறுதி செய்கிறது.

லூப்பில்...ஐப் பயன்படுத்தி பொருளின் பண்புகளுக்கு மேல் மறு செய்கை

ஜாவாஸ்கிரிப்ட் - for...in Loop

var p = {"p1":"value1","p2":"value2","p3":"value3"};
for (var key in p) {
  if (p.hasOwnProperty(key)) {
    console.log(key + " -> " + p[key]);
  }
}
// Output:
// p1 -> value1
// p2 -> value2
// p3 -> value3

Object.entries() ஐப் பயன்படுத்தி பொருள் விசைகள் மற்றும் மதிப்புகள் மூலம் லூப்பிங்

ஜாவாஸ்கிரிப்ட் - Object.entries()

var p = {"p1":"value1","p2":"value2","p3":"value3"};
Object.entries(p).forEach(([key, value]) => {
  console.log(key + " -> " + value);
});
// Output:
// p1 -> value1
// p2 -> value2
// p3 -> value3

Object.keys() ஐப் பயன்படுத்தி பொருள் பண்புகளை கணக்கிடுதல்

ஜாவாஸ்கிரிப்ட் - Object.keys()

var p = {"p1":"value1","p2":"value2","p3":"value3"};
Object.keys(p).forEach(key => {
  console.log(key + " -> " + p[key]);
});
// Output:
// p1 -> value1
// p2 -> value2
// p3 -> value3

Object.values() ஐப் பயன்படுத்தி பொருள் மதிப்புகள் மூலம் மீண்டும் கூறுதல்

ஜாவாஸ்கிரிப்ட் - Object.values()

var p = {"p1":"value1","p2":"value2","p3":"value3"};
Object.values(p).forEach(value => {
  console.log(value);
});
// Output:
// value1
// value2
// value3

ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் மறு செய்கையில் ஆழமாக டைவிங்

ஜாவாஸ்கிரிப்டில் பொருள் மறு செய்கையைக் கையாள மற்றொரு சக்திவாய்ந்த வழி Map பொருள். வழக்கமான பொருட்களைப் போலல்லாமல், Map விசைகள் எந்த தரவு வகையிலும் இருக்கக்கூடிய விசை-மதிப்பு ஜோடிகளை சேமிக்க ஆப்ஜெக்டுகள் உங்களை அனுமதிக்கின்றன. பொருள்கள் அல்லது செயல்பாடுகள் போன்ற சிக்கலான விசைகளை மதிப்புகளுடன் இணைக்க வேண்டிய சூழ்நிலைகளில் இந்த நெகிழ்வுத்தன்மை குறிப்பாக பயனுள்ளதாக இருக்கும். நீங்கள் எளிதாக மீண்டும் மீண்டும் ஒரு Map போன்ற அதன் உள்ளமைக்கப்பட்ட முறைகளைப் பயன்படுத்தி Map.prototype.forEach(), Map.prototype.keys(), மற்றும் Map.prototype.values(), ஒரு சீரான மற்றும் யூகிக்கக்கூடிய மறு செய்கை வரிசையை வழங்குகிறது, இது செருகும் வரிசையாகும்.

கூடுதலாக Map, ஜாவாஸ்கிரிப்ட் கூட வழங்குகிறது WeakMap, இது ஒத்ததாக ஆனால் பலவீனமாகக் குறிப்பிடப்பட்ட விசைகளுடன் உள்ளது, அதாவது பொருளுக்கு வேறு குறிப்புகள் இல்லை என்றால் அவை குப்பை சேகரிப்பதைத் தடுக்காது. சில பயன்பாடுகளில் நினைவகத்தை மிகவும் திறமையாக நிர்வகிக்க இது உதவும். இரண்டும் Map மற்றும் WeakMap முக்கிய மதிப்பு ஜோடிகளின் சேகரிப்புகளை நிர்வகிப்பதற்கான ஒரு வலுவான முறைகளை வழங்கவும். அவை எளிய பொருட்களுக்கு நேரடி மாற்றாக இல்லாவிட்டாலும், அவை மிகவும் சிக்கலான தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகளில் பயன்படுத்தக்கூடிய நெகிழ்வுத்தன்மை மற்றும் நினைவக மேலாண்மை ஆகியவற்றின் அடிப்படையில் தனித்துவமான நன்மைகளை வழங்குகின்றன.

ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் மறு செய்கை பற்றிய பொதுவான கேள்விகள்

  1. ஜாவாஸ்கிரிப்டில் ஒரு பொருளின் பண்புகளை நான் எவ்வாறு மீண்டும் கூறுவது?
  2. நீங்கள் பயன்படுத்தலாம் for...in, Object.keys(), Object.values(), அல்லது Object.entries() ஒரு பொருளின் பண்புகளை மீண்டும் செய்யவும்.
  3. என்ன வித்தியாசம் for...in மற்றும் Object.keys()?
  4. for...in முன்மாதிரி சங்கிலியின் மூலம் பெறப்பட்டவை உட்பட, அனைத்து எண்ணிடக்கூடிய பண்புகளையும் மீண்டும் மீண்டும் செய்கிறது Object.keys() பொருளின் சொந்த எண்ணக்கூடிய பண்புகளை மட்டுமே வழங்குகிறது.
  5. எப்படி செய்கிறது Object.entries() வேலை?
  6. Object.entries() பொருளின் சொந்த எண்ணிடக்கூடிய சொத்து [விசை, மதிப்பு] ஜோடிகளின் வரிசையை வழங்குகிறது, அதை மீண்டும் மீண்டும் செய்ய முடியும் forEach வளைய.
  7. நான் பயன்படுத்தி கொள்ளலாமா forEach நேரடியாக ஒரு பொருளின் மீது?
  8. இல்லை, forEach வரிசைகளின் ஒரு முறையாகும், ஆனால் நீங்கள் அதை திரும்பிய வரிசைகளில் பயன்படுத்தலாம் Object.keys(), Object.values(), அல்லது Object.entries().
  9. எவை Map மற்றும் WeakMap?
  10. Map எந்த வகை விசைகளையும் அனுமதிக்கிறது மற்றும் செருகும் வரிசையை பராமரிக்கிறது. WeakMap பலவீனமாகக் குறிப்பிடப்பட்ட மற்றும் குப்பைகளை சேகரிக்கக்கூடிய சாவிகளைக் கொண்டுள்ளது.
  11. எப்படி செய்வது Map.prototype.forEach() மற்றும் Array.prototype.forEach() வேறுபடுமா?
  12. அவர்கள் இதேபோல் வேலை செய்கிறார்கள், ஆனால் Map.prototype.forEach() வரைபட உள்ளீடுகள் (முக்கிய மதிப்பு ஜோடிகள்), அதேசமயம் Array.prototype.forEach() வரிசை உறுப்புகள் மீது மீண்டும் மீண்டும்.
  13. ஏன் பயன்படுத்த வேண்டும் Object.values()?
  14. பயன்படுத்தவும் Object.values() ஒரு பொருளின் பண்புகளின் மதிப்புகளை நீங்கள் நேரடியாக மறுபரிசீலனை செய்ய வேண்டியிருக்கும் போது.

ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் மறு செய்கை பற்றிய இறுதி எண்ணங்கள்

பயனுள்ள நிரலாக்கத்திற்கு ஜாவாஸ்கிரிப்டில் பொருள் மறு செய்கையை மாஸ்டரிங் செய்வது அவசியம். போன்ற முறைகளைப் பயன்படுத்துவதன் மூலம் for...in, Object.keys(), Object.values(), மற்றும் Object.entries(), டெவலப்பர்கள் பொருள் பண்புகளை திறமையாக அணுகலாம் மற்றும் கையாளலாம். இந்த நுட்பங்கள் நெகிழ்வுத்தன்மையை வழங்குகின்றன, உங்கள் குறியீடு சுத்தமாகவும், திறமையாகவும், புரிந்துகொள்ள எளிதாகவும் இருப்பதை உறுதி செய்கிறது. நீங்கள் எளிமையான அல்லது சிக்கலான பொருட்களைக் கையாள்வது எதுவாக இருந்தாலும், இந்த முறைகளை அறிந்துகொள்வது உங்கள் குறியீட்டு திறன்களை மேம்படுத்துவதோடு உங்கள் ஜாவாஸ்கிரிப்ட் பயன்பாடுகளை மேம்படுத்தும்.