மாஸ்டரிங் வரிசை வரிசையாக்கம்: நாடு வாரியாக நகரங்களைத் தொகுத்தல்
ஜாவாஸ்கிரிப்ட்டில், வரிசைகளுடன் பணிபுரிவது பொதுவானது, ஆனால் நீங்கள் சிக்கலான தரவை ஒழுங்கமைக்க வேண்டியிருக்கும் போது விஷயங்கள் தந்திரமானதாக இருக்கும். உதாரணமாக, உங்களிடம் நாடுகள், நகரங்கள் மற்றும் தேதிகளின் பட்டியல் இருந்தால், அந்த வரிசையை வரிசைப்படுத்தி மறுகட்டமைப்பது சவாலாக இருக்கும். இங்குதான் ஸ்மார்ட் வரிசை கையாளுதல் கைக்கு வரும்.
நாட்டின் பெயர்கள், நகரப் பெயர்கள் மற்றும் தொடர்புடைய தேதிகளைக் கொண்ட ஒரு வரிசை உங்களிடம் இருப்பதாக கற்பனை செய்து பாருங்கள், மேலும் ஒவ்வொரு நகரத்தின் தரவையும் அந்தந்த நாட்டின் கீழ் குழுவாக்கும்போது இந்த வரிசையை நாடு வாரியாக வரிசைப்படுத்த விரும்புகிறீர்கள். தெளிவான விளக்கக்காட்சிக்கு ஒழுங்கமைக்க வேண்டிய தரவுத்தொகுப்புகளுடன் பணிபுரியும் போது இது ஒரு பயனுள்ள திறமையாகும்.
இதை அடைய, ஜாவாஸ்கிரிப்ட் தரவுகளை எளிதாக வரிசைப்படுத்தவும் மறுகட்டமைக்கவும் அனுமதிக்கும் பல முறைகளை வழங்குகிறது. போன்ற செயல்பாடுகளை நீங்கள் பயன்படுத்தலாம் வரிசை () மற்றும் குறைக்க () தரவு வரிசைகளை நிர்வகிப்பதற்கான தெளிவான மற்றும் சுருக்கமான வழியை வழங்கும்.
நாடு அல்லது நகரத்தில் கிளிக் செய்தல் அல்லது தேதி வரம்பை வரையறுத்தல் போன்ற பல்வேறு பயனர் தொடர்புகளுக்கு ஏற்றவாறு, உள்ளமைக்கப்பட்ட வரிசையை நாடு வாரியாக வரிசைப்படுத்துவதற்கும், குழுவாக்குவதற்கும் எளிமையான அணுகுமுறையின் மூலம் இந்தப் பயிற்சி உங்களுக்கு வழிகாட்டும். படிகளில் மூழ்குவோம்!
கட்டளை | பயன்பாட்டின் உதாரணம் |
---|---|
localeCompare() | இந்த முறை இரண்டு சரங்களை லோகேல்-சென்சிட்டிவ் வரிசையில் ஒப்பிட பயன்படுகிறது. ஸ்கிரிப்ட்டில், அணிவரிசையை வரிசைப்படுத்தும் போது நாட்டின் பெயர்களை அகர வரிசைப்படி ஒப்பிட இது பயன்படுத்தப்படுகிறது. நாட்டின் பெயர்கள் அவற்றின் உள்ளூர்-குறிப்பிட்ட வரிசையாக்க விதிகளின்படி சரியாக வரிசைப்படுத்தப்படுவதை இது உறுதி செய்கிறது. |
reduce() | குறைப்பு() முறை ஒரு வரிசையின் மூலம் மீண்டும் மீண்டும் ஒரு முடிவைக் குவிக்கிறது. இங்கே, ஒவ்வொரு நாட்டையும் அதன் நகரங்கள் மற்றும் தேதிகளுடன் இணைக்கும் ஒரு பொருளை உருவாக்குவதன் மூலம் அந்தந்த நாடுகளின் கீழ் நகரங்களைத் தொகுக்கப் பயன்படுகிறது. |
Object.entries() | இந்த முறை கொடுக்கப்பட்ட பொருளின் சொந்த எண்ணிலடங்கா சரம்-விசை சொத்து ஜோடிகளின் வரிசையை வழங்குகிறது. ஸ்கிரிப்ட்டில், தொகுக்கப்பட்ட பொருளை மீண்டும் ஒரு வரிசை வடிவமாக மாற்ற இது பயன்படுகிறது, இது மிகவும் எளிதாக கையாளப்பட்டு உள்நுழைய முடியும். |
sort() | வரிசையை வரிசைப்படுத்த வரிசை() முறை பயன்படுத்தப்படுகிறது. இந்த வழக்கில், எல்லா தரவும் சரியான வரிசையில் நாடு வாரியாக குழுவாக்கப்படுவதை உறுதிசெய்ய, இது குறிப்பாக முதல் உருப்படி (நாடு) மூலம் வரிசையை வரிசைப்படுத்துகிறது. |
console.log() | இந்த கட்டளை பிழைத்திருத்த நோக்கங்களுக்காக கன்சோலில் தரவை வெளியிடுகிறது. இங்கே, மாற்றப்பட்ட வரிசையின் கட்டமைப்பை சரிபார்க்க உதவுகிறது, டெவலப்பர்கள் ஸ்கிரிப்ட்டின் வெவ்வேறு நிலைகளில் முடிவைப் பார்க்க அனுமதிக்கிறது. |
if (!acc[country]) | வரிசையைக் குறைக்கும் போது திரட்டி பொருளில் ஒரு நாடு இன்னும் இல்லை என்பதை இந்த வரி சரிபார்க்கிறது. அது இல்லாத பட்சத்தில் நாட்டிற்கு ஒரு வெற்று வரிசையை உருவாக்கி, நகரங்களின் சரியான குழுவை உறுதி செய்கிறது. |
push() | புஷ்() முறையானது அணிவரிசையில் புதிய கூறுகளைச் சேர்க்கிறது. இங்கே, குழுப்படுத்தும் செயல்பாட்டில் அந்தந்த நாட்டின் வரிசையில் நகரங்களையும் தேதிகளையும் சேர்க்க இது பயன்படுத்தப்படுகிறது. |
require() | ஜெஸ்ட் சோதனை எடுத்துக்காட்டில், தேவை() செயல்பாடு ஜெஸ்ட் சோதனை சூழலை இறக்குமதி செய்ய பயன்படுத்தப்படுகிறது. இந்த கட்டளையானது தீர்வின் செயல்பாட்டை சரிபார்க்க தேவையான சோதனை கருவிகளை அணுக அனுமதிக்கிறது. |
ஜாவாஸ்கிரிப்டில் வரிசைகளின் திறமையான வரிசைப்படுத்தல் மற்றும் குழுவாக்கம்
மேலே உருவாக்கப்பட்ட ஸ்கிரிப்ட்கள், உள்ளமைக்கப்பட்ட வரிசையை வரிசைப்படுத்துதல் மற்றும் குழுவாக்கம் செய்வதில் உள்ள சிக்கலைச் சமாளிக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளன, இந்த விஷயத்தில் இது நாடு. அந்தந்த நாடுகளின் கீழ் நகரங்கள் மற்றும் தேதிகளின் அட்டவணையை ஒழுங்கமைப்பதே குறிக்கோள். செயல்முறை பயன்படுத்துவதன் மூலம் தொடங்குகிறது வரிசை () வரிசையை மறுசீரமைப்பதற்கான முறை. ஒரே நாட்டுடன் தொடர்புடைய அனைத்து வரிசைகளும் தொடர்ச்சியாக பட்டியலிடப்படுவதை உறுதிசெய்வதற்கு இந்தச் செயல்பாடு முக்கியமானது. அந்நியப்படுத்துவதன் மூலம் உள்ளூர் ஒப்பிடு(), வரிசைப்படுத்தல் உள்ளூர்-குறிப்பிட்ட விதிகளை மதிக்கிறது என்பதை ஸ்கிரிப்ட் உறுதி செய்கிறது, இது பல்வேறு நாட்டின் பெயர்கள் அல்லது ASCII அல்லாத எழுத்துக்களைக் கையாளும் போது குறிப்பாக முக்கியமானது.
தரவு வரிசைப்படுத்தப்பட்டவுடன், அடுத்த கட்டமாக நாடு வாரியாக நகரங்களைத் தொகுக்க வேண்டும். இதைப் பயன்படுத்தி அடையப்படுகிறது குறைக்க () செயல்பாடு, முடிவுகளின் திரட்சியை எளிதாக்கும் ஒரு சக்திவாய்ந்த வரிசை முறை. இந்த வழக்கில், ஒவ்வொரு விசையும் ஒரு நாடாக இருக்கும் ஒரு பொருளை இந்த முறை உருவாக்குகிறது, மேலும் தொடர்புடைய மதிப்பு அதன் நகரங்கள் மற்றும் தேதிகளின் வரிசையாகும். ஒவ்வொரு நாடும் அதனுடன் தொடர்புடைய தரவுகளுடன் இணைந்திருப்பதை இந்தப் படி உறுதிசெய்கிறது, இது முன்-இறுதி இடைமுகத்தில் அட்டவணைகள் அல்லது விளக்கப்படங்களை வழங்குதல் போன்ற எதிர்கால செயல்பாடுகளை நிர்வகிப்பதையும் அணுகுவதையும் எளிதாக்குகிறது.
குழுவாக்கிய பிறகு, ஸ்கிரிப்ட் பயன்படுத்துகிறது Object.entries() விளைந்த பொருளை மீண்டும் அணிவரிசையாக மாற்றும் முறை. ஜாவாஸ்கிரிப்டில் உள்ள வரிசைகள் போல பொருள்கள் எளிதில் கையாளப்படுவதில்லை அல்லது வழங்கப்படுவதில்லை என்பதால் இந்த மாற்றம் அவசியம். தரவை மீண்டும் வரிசை வடிவமாக மாற்றுவதன் மூலம், நாம் அதை மீண்டும் மீண்டும் செய்யலாம் அல்லது மற்ற செயல்பாடுகளுக்கு தடையின்றி அனுப்பலாம். ஜாவாஸ்கிரிப்டில் உள்ள பல பணிகளுக்கு அணிவரிசைகளின் பயன்பாடு விரும்பப்படுகிறது, ஏனெனில் அவை பெரும்பாலான செயல்பாடுகளுடன் இணக்கத்தன்மை மற்றும் எளிதில் பயணிக்கக்கூடியவை.
இறுதிப் படிகளில், ஸ்கிரிப்ட் செயல்பாட்டிற்காக சோதிக்கப்படுகிறது. பின்-இறுதி தீர்வுக்கு Node.js, வரிசைப்படுத்துதல் மற்றும் தொகுத்தல் செயல்பாடுகளின் சரியான தன்மையை சரிபார்க்க Jest கட்டமைப்பைப் பயன்படுத்தி யூனிட் சோதனைகளைப் பயன்படுத்துகிறோம். நகரங்கள் அந்தந்த நாடுகளின் கீழ் ஒழுங்காக குழுவாக உள்ளதா என்பதை சோதனைகள் சரிபார்த்து, வெளியீட்டு வடிவம் எதிர்பார்க்கப்படும் கட்டமைப்புடன் பொருந்துகிறதா என்பதை உறுதிப்படுத்துகிறது. சேவையகத்திலோ அல்லது உலாவியிலோ தீர்வு பல சூழல்களில் செயல்படும் என்பதை உறுதிப்படுத்த, சோதனையில் கவனம் செலுத்துவது மிகவும் முக்கியமானது. கலவையின் மூலம் திறமையான வரிசை முறைகள் மற்றும் சரியான சோதனை, ஸ்கிரிப்ட்கள் ஜாவாஸ்கிரிப்டில் சிக்கலான தரவை வரிசைப்படுத்துதல் மற்றும் தொகுத்தல் ஆகியவற்றின் சிக்கலுக்கு நம்பகமான மற்றும் அளவிடக்கூடிய தீர்வை வழங்குகின்றன.
தரவு வரிசைகளை மறுசீரமைத்தல்: நாடு வாரியாக தொகுத்தல் மற்றும் வரிசைப்படுத்துதல்
வரிசை முறைகளைப் பயன்படுத்தி முன்-இறுதி ஜாவாஸ்கிரிப்ட் தீர்வு (வரிசைப்படுத்துதல், குறைத்தல்)
// Original array of country, city, and date data
const data = [
['Spain', 'Madrid', '10-12-2024'],
['Spain', 'Barcelona', '10-15-2024'],
['Suisse', 'Berne', '10-18-2024'],
['France', 'Paris', '10-22-2024'],
['France', 'Lyon', '10-24-2024']
];
// Step 1: Sort the array by country name (first item)
data.sort((a, b) => a[0].localeCompare(b[0]));
// Step 2: Group cities by their respective countries using reduce
const groupedData = data.reduce((result, item) => {
const [country, city, date] = item;
if (!result[country]) {
result[country] = [];
}
result[country].push([city, date]);
return result;
}, {});
// Step 3: Convert the grouped object back into an array format
const orderedArray = Object.entries(groupedData);
console.log(orderedArray);
பின்-இறுதி வரிசை வரிசைப்படுத்தலை மேம்படுத்துதல்: Node.js செயல்படுத்தல்
செயல்பாட்டு நிரலாக்கத்தைப் பயன்படுத்தி பின்-இறுதி Node.js தீர்வு
const data = [
['Spain', 'Madrid', '10-12-2024'],
['Suisse', 'Berne', '10-18-2024'],
['France', 'Paris', '10-22-2024'],
['France', 'Lyon', '10-24-2024'],
['Spain', 'Barcelona', '10-15-2024']
];
// Step 1: Sort data by country (first column)
const sortedData = data.sort((a, b) => a[0].localeCompare(b[0]));
// Step 2: Group data by country using map and reduce functions
const groupedData = sortedData.reduce((acc, current) => {
const [country, city, date] = current;
if (!acc[country]) {
acc[country] = [];
}
acc[country].push([city, date]);
return acc;
}, {});
// Step 3: Return the formatted array
const resultArray = Object.entries(groupedData);
console.log(resultArray);
பல சூழல்களில் வரிசையாக்க செயல்பாடுகளை சோதித்தல்
JavaScriptக்கான Jest ஐப் பயன்படுத்தி அலகு சோதனைகளைச் சேர்த்தல்
const { test, expect } = require('@jest/globals');
test('Should correctly group cities by country', () => {
const data = [
['Spain', 'Madrid', '10-12-2024'],
['France', 'Paris', '10-22-2024']
];
const groupedData = sortAndGroup(data);
expect(groupedData).toEqual([
['Spain', [['Madrid', '10-12-2024']]],
['France', [['Paris', '10-22-2024']]]
]);
});
ஜாவாஸ்கிரிப்டில் அணிவரிசைகளை வரிசைப்படுத்துவதற்கான மேம்பட்ட நுட்பங்கள்
ஜாவாஸ்கிரிப்டில், குறிப்பாக டைனமிக் பயன்பாடுகளில், வரிசைப்படுத்தல் வரிசைகளை கையாளும் போது மற்றொரு முக்கியமான அம்சம், தரவு தொடர்ந்து மாறிக்கொண்டே இருக்கும் நிகழ்வுகளை எவ்வாறு கையாள்வது என்பது. எடுத்துக்காட்டாக, பயனர்கள் முன்பதிவு தளம் போன்ற நேரடி அமைப்புடன் தொடர்பு கொள்ளும்போது, அவர்கள் நாடுகள், நகரங்கள் மற்றும் தேதிகளைத் தேர்ந்தெடுக்கும்போது, தரவை வரிசைப்படுத்துவது நிகழ்நேரத்தில் நடப்பது முக்கியம். இதுபோன்ற சந்தர்ப்பங்களில், போன்ற முறைகளைப் பயன்படுத்துதல் நிகழ்வு உந்துதல் நிரலாக்கம் பயனுள்ளதாக இருக்கும். ஒவ்வொரு முறையும் ஒரு பயனர் தரவைத் தேர்ந்தெடுக்கும் போது அல்லது மாற்றியமைக்கும் போது, வரிசை தானாகவே புதுப்பிக்கப்பட்டு மீண்டும் வரிசைப்படுத்தப்படுவதை இது உறுதி செய்கிறது.
மிகவும் சிக்கலான அமைப்புகளில், பயன்பாடு திரும்ப திரும்ப செயல்பாடுகள் அல்காரிதங்களை வரிசைப்படுத்துவதில் குறிப்பிட்ட பயனர் தேவைகளுக்கு ஏற்ப வரிசைப்படுத்தும் தர்க்கத்தை வடிவமைக்க உதவும். உதாரணமாக, நீங்கள் நாடு வாரியாக மட்டுமல்லாமல், பயனர் விருப்பங்களைப் பொறுத்து நகரம் அல்லது தேதி வாரியாக வரிசைப்படுத்த வேண்டியிருக்கலாம். உள்ளே ஒரு கால்பேக் செயல்பாடு sort() வரிசையாக்கம் எவ்வாறு மாறும் வகையில் கையாளப்பட வேண்டும் என்பதை டெவலப்பரை வரையறுக்க இந்த முறை அனுமதிக்கிறது, இது பயனர் அனுபவத்தையும் கணினி நெகிழ்வுத்தன்மையையும் மேம்படுத்துகிறது.
கருத்தில் கொள்ள வேண்டிய மற்றொரு அம்சம் பயன்பாடு ஆகும் தரவு சரிபார்ப்பு வரிசையை வரிசைப்படுத்துவதற்கு முன். சிதைந்த அல்லது தவறான தரவு எதுவும் அணிவரிசையில் வராமல் இருப்பதை இந்தப் படி உறுதி செய்கிறது. எடுத்துக்காட்டாக, பயனர் தற்செயலாக தவறான தேதியை உள்ளிட்டால் அல்லது நகரத்தின் பெயரை காலியாக விட்டால், தரவு சரிபார்ப்பு செயல்முறை பிழையைக் கொடியிடலாம் அல்லது வரிசைப்படுத்தும் தர்க்கம் பயன்படுத்தப்படுவதற்கு முன்பு தவறான உள்ளீடுகளை தானாகவே வடிகட்டலாம். கணினியின் தரவின் ஒருமைப்பாடு மற்றும் துல்லியத்தை பராமரிக்க இந்த படி முக்கியமானது.
ஜாவாஸ்கிரிப்டில் அணிவரிசைகளை வரிசைப்படுத்துவது பற்றிய பொதுவான கேள்விகள்
- ஜாவாஸ்கிரிப்டில் முதல் உருப்படியின்படி ஒரு வரிசையை எவ்வாறு வரிசைப்படுத்துவது?
- நீங்கள் பயன்படுத்தலாம் sort() முறை மற்றும் தனிப்பயன் செயல்பாட்டைப் பயன்படுத்தி முதல் உருப்படிகளை ஒப்பிடவும் localeCompare().
- என்ன reduce() இந்த சூழலில் பயன்படுத்தப்பட்டது?
- தி reduce() ஒவ்வொரு நாடும் அதன் நகரங்களை மதிப்புகளாகக் கொண்டு, ஒவ்வொரு நாடும் ஒரு திறவுகோலாக செயல்படும் ஒரு பொருளை உருவாக்க, வரிசை உறுப்புகளை நாடு வாரியாக தொகுக்க இந்த முறை உதவுகிறது.
- வரிசைப்படுத்துவதற்கு முன் அணிவரிசையில் தவறான தரவை எவ்வாறு கையாள்வது?
- விடுபட்ட நகரப் பெயர்கள் அல்லது தவறான தேதிகள் போன்ற பிழைகளைச் சரிபார்க்க தரவு சரிபார்ப்பு செயல்முறையைப் பயன்படுத்தவும், மேலும் இந்த உள்ளீடுகளை வரிசைப்படுத்துவதற்கு முன் கொடியிடவும் அல்லது அகற்றவும்.
- நாடு மற்றும் நகரம் இரண்டின் அடிப்படையில் நான் வரிசைப்படுத்த விரும்பினால் என்ன செய்வது?
- நீங்கள் அழைப்பை மாற்றலாம் sort() முதலில் நாடுகளை ஒப்பிடுவதற்கான முறை, அவை ஒரே மாதிரியாக இருந்தால், அதே நாட்டிலுள்ள நகரங்களை ஒப்பிடவும்.
- பயனர் உள்ளீட்டிற்கு ஏற்ப நான் எவ்வாறு வரிசைப்படுத்துவது?
- தூண்டும் நிகழ்வு கேட்பவர்களை நீங்கள் செயல்படுத்தலாம் sort() புதிய நகரம் அல்லது தேதியைத் தேர்ந்தெடுப்பது போன்ற பயனர் மாற்றங்களைச் செய்யும் போது செயல்படும்.
வரிசை வரிசைப்படுத்துதல் மற்றும் குழுவாக்கம் பற்றிய இறுதி எண்ணங்கள்
இங்கே கோடிட்டுக் காட்டப்பட்டுள்ள நுட்பங்கள், நாடு வாரியாக அணிவரிசைகளை வரிசைப்படுத்தவும், குழுவாக்கவும் ஒரு நெறிப்படுத்தப்பட்ட வழியை வழங்குகின்றன, இது செயல்முறையை திறமையாகவும் வெவ்வேறு பயனர் தொடர்புகளுக்கு ஏற்றதாகவும் ஆக்குகிறது. ஜாவாஸ்கிரிப்டைப் பயன்படுத்துதல் வரிசை முறைகள் தரவு எளிதாக நிர்வகிக்கப்படுவதையும் சரியான வடிவத்தில் காட்டப்படுவதையும் உறுதி செய்கிறது.
நிகழ்வு-உந்துதல் புதுப்பிப்புகள், தரவு சரிபார்ப்பு மற்றும் டைனமிக் வரிசையாக்கம் மூலம், டெவலப்பர்கள் பயனர் உள்ளீட்டை சீராக கையாளும் வலுவான அமைப்புகளை உருவாக்க முடியும். இந்த அணுகுமுறைகள் டைனமிக் டேட்டா கையாளுதல் சம்பந்தப்பட்ட பொதுவான பிரச்சனைகளுக்கு அளவிடக்கூடிய தீர்வுகளை வழங்குகின்றன, பெரிய தரவுத்தொகுப்புகளுடன் கூட வரிசைப்படுத்துதல் திறமையாக இருப்பதை உறுதி செய்கிறது.
JavaScript இல் வரிசைகளை வரிசைப்படுத்துவதற்கான ஆதாரங்கள் மற்றும் குறிப்புகள்
- ஜாவாஸ்கிரிப்ட்டின் வரிசை வரிசைப்படுத்தும் முறைகளின் விரிவான விளக்கத்தை இங்கே காணலாம் MDN Web Docs - Array.sort() .
- வரிசைகளை குழுவாக்குவதற்கான குறைப்பு முறையைப் பயன்படுத்துவதற்கான விரிவான வழிகாட்டி: MDN Web Docs - Array.reduce() .
- JavaScript இல் உள்ள லோக்கல்-சார்ந்த வரிசையாக்கத்தைப் பயன்படுத்தி சரங்களை எவ்வாறு ஒப்பிடுவது என்பது பற்றிய தகவல்: MDN Web Docs - String.localeCompare() .
- ஜாவாஸ்கிரிப்டில் ஜெஸ்டுடன் சோதனை செய்ய, பார்க்கவும் நகைச்சுவை ஆவணம் - தொடங்குதல் .