ஜாவாஸ்கிரிப்ட் வரிசையில் இருந்து நகல்களை அகற்றுதல்

ஜாவாஸ்கிரிப்ட் வரிசையில் இருந்து நகல்களை அகற்றுதல்
ஜாவாஸ்கிரிப்ட் வரிசையில் இருந்து நகல்களை அகற்றுதல்

ஜாவாஸ்கிரிப்டில் வரிசையின் தனித்துவத்தைப் புரிந்துகொள்வது

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

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

கட்டளை விளக்கம்
new Set() ஒரு செட் பொருளை உருவாக்குகிறது, இது எந்த வகையிலும் தனித்துவமான மதிப்புகளைச் சேமிக்க உங்களை அனுமதிக்கிறது.
[...new Set(array)] ஒரு தொகுப்பை மீண்டும் தனித்துவமான மதிப்புகளின் வரிசையாக மாற்ற ஸ்ப்ரெட் ஆபரேட்டரைப் பயன்படுத்துகிறது.
Array.prototype.getUnique வரிசையிலிருந்து தனித்துவமான மதிப்புகளைப் பிரித்தெடுக்க வரிசை முன்மாதிரியில் ஒரு புதிய முறையை வரையறுக்கிறது.
uniqueElements[this[i]] = this[i] தனித்துவத்தை உறுதிப்படுத்த ஒவ்வொரு உறுப்புகளையும் ஒரு பொருளில் ஒரு திறவுகோலாக சேமிக்கிறது.
for (let key in uniqueElements) முடிவு வரிசையை உருவாக்க தனித்துவமான உறுப்புகளின் விசைகளை மீண்டும் இயக்குகிறது.
const uniqueElements = {} தனிப்பட்ட கூறுகளை விசைகளாகச் சேமிக்க வெற்றுப் பொருளைத் துவக்குகிறது.

ஜாவாஸ்கிரிப்ட் வரிசைகளில் உள்ள நகல்களை எவ்வாறு அகற்றுவது

நாங்கள் வழங்கிய முதல் ஸ்கிரிப்ட் பயன்படுத்துகிறது new Set() வரிசையின் தனித்துவத்தை உறுதிப்படுத்த ஜாவாஸ்கிரிப்டில் ஆப்ஜெக்ட். ஏ Set ஒவ்வொரு மதிப்பும் தனிப்பட்டதாக இருக்க வேண்டிய மதிப்புகளின் தொகுப்பாகும். ஒரு வரிசையை a க்குள் அனுப்புவதன் மூலம் Set, நகல் மதிப்புகளை தானாகவே வடிகட்டுவோம். மாற்றுவதற்கு Set மீண்டும் ஒரு வரிசையில், நாம் ஸ்ப்ரெட் ஆபரேட்டரைப் பயன்படுத்துகிறோம் [...new Set(array)]. இந்த முறை சுருக்கமானது மற்றும் விரும்பிய முடிவை திறம்பட அடைய JavaScript இன் உள்ளமைக்கப்பட்ட செயல்பாடுகளை மேம்படுத்துகிறது.

எடுத்துக்காட்டாக, பூஜ்ஜியங்கள் உட்பட நகல் எண்களைக் கொண்ட வரிசை உங்களிடம் இருந்தால் [1, 2, 2, 3, 4, 4, 5, 0, 0], செயல்பாடு getUniqueValues(array) தனித்துவமான மதிப்புகள் கொண்ட வரிசையை வழங்கும்: [1, 2, 3, 4, 5, 0]. இந்த முறை நேரடியானது மற்றும் பூஜ்ஜியங்கள் உட்பட அனைத்து வகையான கூறுகளையும் எந்த பிரச்சனையும் இல்லாமல் கையாளுகிறது.

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

இரண்டாவது ஸ்கிரிப்ட் தனிப்பயன் முறையை வரையறுக்கிறது Array.prototype அழைக்கப்பட்டது getUnique. இந்த முறை தனிப்பட்ட கூறுகளைக் கண்காணிக்க ஒரு பொருளைப் பயன்படுத்துகிறது. முறைக்குள், முதலில் ஒரு வெற்றுப் பொருளை துவக்குகிறோம் const uniqueElements = {} மற்றும் ஒரு வெற்று வரிசை const resultArray = []. பின்னர் a ஐப் பயன்படுத்தி வரிசையின் மீது மீண்டும் செய்கிறோம் for லூப், ஒவ்வொரு உறுப்புகளையும் ஒரு விசையாக சேமிக்கிறது uniqueElements அனைத்து விசைகளும் தனித்தன்மை வாய்ந்தவை என்பதை உறுதிப்படுத்தும் பொருள்.

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

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

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

function getUniqueValues(array) {
  return [...new Set(array)];
}

// Example usage:
const numbers = [1, 2, 2, 3, 4, 4, 5, 0, 0];
const uniqueNumbers = getUniqueValues(numbers);
console.log(uniqueNumbers);

தனிப்பயன் செயல்பாடு கொண்ட அணிவரிசையில் உள்ள நகல்களை நீக்குதல்

JavaScript தனிப்பயன் முன்மாதிரி முறை

Array.prototype.getUnique = function() {
  const uniqueElements = {};
  const resultArray = [];
  for (let i = 0; i < this.length; i++) {
    uniqueElements[this[i]] = this[i];
  }
  for (let key in uniqueElements) {
    resultArray.push(uniqueElements[key]);
  }
  return resultArray;
};

// Example usage:
const numbers = [1, 2, 2, 3, 4, 4, 5, 0, 0];
const uniqueNumbers = numbers.getUnique();
console.log(uniqueNumbers);

வரிசை துப்பறியும் நுட்பங்களில் ஆழமாக மூழ்குங்கள்

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

உதாரணமாக, ஒரு வரிசையைக் கவனியுங்கள் [1, 2, 2, 3, 4, 4, 5, 0, 0]. பயன்படுத்தி array.filter((item, index) => array.indexOf(item) === index), நீங்கள் நகல் மதிப்புகளை வடிகட்டலாம். இந்த அணுகுமுறை தற்போதைய உறுப்பின் குறியீடானது அந்த உறுப்பின் முதல் நிகழ்வு குறியீட்டைப் போலவே உள்ளதா என்பதைச் சரிபார்ப்பதன் மூலம் செயல்படுகிறது. அது இருந்தால், உறுப்பு தனித்துவமானது மற்றும் புதிய வரிசையில் சேர்க்கப்பட்டுள்ளது.

ஜாவாஸ்கிரிப்ட் அரே டியூப்ளிகேஷன் பற்றிய பொதுவான கேள்விகள்

  1. வரிசையிலிருந்து நகல்களை அகற்றுவதற்கான மிகச் சிறந்த வழி எது?
  2. ஒரு பயன்படுத்தி Set இது O(n) இன் நேர சிக்கலைக் கொண்டிருப்பதால் மிகவும் திறமையான வழிகளில் ஒன்றாகும்.
  3. நான் பயன்படுத்தலாமா filter நகல்களை அகற்றும் முறை?
  4. ஆம், இணைத்தல் filter உடன் indexOf நகல்களை அகற்றுவதற்கான பொதுவான அணுகுமுறை.
  5. ஏன் செய்கிறது prototype முறை பூஜ்ஜியத்தில் தோல்வியா?
  6. அசல் ஸ்கிரிப்ட் பூஜ்ஜியத்துடன் தோல்வியடைகிறது, ஏனெனில் for (i = 0; e = this[i]; i++) பூஜ்ஜியத்தில் நிறுத்துகிறது, அது தவறானது என்று விளக்குகிறது.
  7. தனித்துவத்திற்காக ஒரு வரிசையில் வெவ்வேறு தரவு வகைகளை எவ்வாறு கையாளலாம்?
  8. ஒரு பயன்படுத்தி Set ஒவ்வொரு மதிப்பும் தனித்துவமானது என்பதை உறுதி செய்வதன் மூலம் வெவ்வேறு தரவு வகைகளை திறமையாக கையாளுகிறது.
  9. பயன்படுத்துவதால் என்ன பயன் new Set() மற்ற முறைகள் மீது?
  10. new Set() சுருக்கமானது மற்றும் கூடுதல் தர்க்கம் தேவையில்லாமல் அனைத்து வகையான மதிப்புகளையும் கையாளுகிறது.
  11. அனைத்து வரிசைகளிலும் தனித்துவமான முறையைச் சேர்க்க முடியுமா?
  12. ஆம், ஒரு முறையைச் சேர்ப்பதன் மூலம் Array.prototype, நீங்கள் அதை அனைத்து வரிசைகளுக்கும் கிடைக்கச் செய்யலாம்.
  13. மாற்றியமைப்பதில் என்ன குறை இருக்கிறது Array.prototype?
  14. மாற்றியமைத்தல் Array.prototype மற்ற ஸ்கிரிப்ட்களும் அதை மாற்றினால் மோதல்களுக்கு வழிவகுக்கும்.
  15. அசல் வரிசையை மாற்றாமல் தனித்துவத்தை உறுதிப்படுத்த வழி உள்ளதா?
  16. ஆம், போன்ற முறைகள் new Set() மற்றும் filter புதிய வரிசையை உருவாக்கி, அசலைப் பாதுகாத்தல்.

ஜாவாஸ்கிரிப்ட் அரே டியூப்ளிகேஷன் பற்றிய இறுதி எண்ணங்கள்

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