தொகுதி பாடங்கள் (2/4)
சவால்: CSV பாகுபடுத்தி
CSV வடிவம் (காற்புள்ளியால் பிரிக்கப்பட்ட மதிப்புகள்) எல்லா இடங்களிலும் உள்ளது: Excel இலிருந்து ஏற்றுமதிகள், தரவுத்தள டம்ப்கள், கட்டளை வரி கருவிகளிலிருந்து வெளியீடு. அதை பாகுபடுத்துவது பிளவு, வரைபடம் ஆகியவற்றை இணைக்கும் ஒரு சிறிய சவாலாகும். அழித்தல், மற்றும் பொருள் கட்டுமான.
வடிவம்
குறைந்தபட்ச CSV என்பது பல வரி சரம்: முதல் வரிசையில் தலைப்பு (நெடுவரிசைப் பெயர்கள்), பின்னர் ஒன்று காற்புள்ளிகளால் பிரிக்கப்பட்ட புலங்களுடன் ஒரு பதிவுக்கான வரிசை.
nome,eta,citta
Alice,30,Roma
Bob,25,Milano
உன்னதமான குறிக்கோள், அதை பொருள்களின் வரிசையாக மாற்றுவதாகும்:
[
{ nome: 'Alice', eta: '30', citta: 'Roma' },
{ nome: 'Bob', eta: '25', citta: 'Milano' },
];3-படி செய்முறை
- பிரிவு வரிகள்:
csv.split('\n') - ** பிரித்தெடுக்கவும்** தலைப்பு வரிசை: முதல் வரி, கமாவால் பிரிக்கப்பட்டது
- வரைபடம் ஒரு பொருளுக்கு மீதமுள்ள ஒவ்வொரு வரியும், ஒவ்வொரு புலத்தையும் பொருந்தும் தலைப்புடன் இணைக்கிறது
function parseCSV(csv) {
const righe = csv.split('\n');
const intestazione = righe[0].split(',');
return righe.slice(1).map((riga) => {
const campi = riga.split(',');
const record = {};
intestazione.forEach((nome, i) => {
record[nome] = campi[i];
});
return record;
});
}மேலும் நவீன மாற்றுகள்:
const record = Object.fromEntries(intestazione.map((nome, i) => [nome, campi[i]]));மாற்றும் வகைகள்
பாகுபடுத்தப்பட்ட புலங்கள் எப்போதும் சரங்கள். சில நெடுவரிசைகள் எண்கள் என்று உங்களுக்குத் தெரிந்தால்:
record.eta = Number(record.eta);அல்லது ஒரு சிறிய "ஸ்கீமா" எழுதவும்:
const numeriche = new Set(['eta', 'prezzo']);
intestazione.forEach((nome, i) => {
const v = campi[i];
record[nome] = numeriche.has(nome) ? Number(v) : v;
});முயற்சி செய்து பாருங்கள்
CSV சரத்தை எடுக்கும் `parseCSV(csv)` என்பதை வரையறுக்கவும் (முதல் வரிசை = தலைப்பு, காற்புள்ளிகள் பிரிப்பானாக). தலைப்பு விசைகளுடன் பொருள்களின் வரிசையைத் திருப்பி அனுப்பவும். எல்லா மதிப்புகளும் சரங்களாகவே இருக்கும். வெற்று வரிசைகளை புறக்கணிக்கவும்.
குறிப்பைக் காட்டு
புதிய வரியில் பிளவு, முதல் வரிசை = தலைப்பு, மீதமுள்ள வரைபடம், Object.fromEntries.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
CSV ஐ பாகுபடுத்தி, நெடுவரிசை மதிப்புகளை எண்களாக மாற்றும் மற்றும் அவற்றின் சராசரியை (ஒரு எண்) வழங்கும் `columnMean(csv, columnName)` ஐ வரையறுக்கவும். தரவு வரிசைகள் இல்லை என்றால் 0 ஐத் தரவும்.
குறிப்பைக் காட்டு
நெடுவரிசைக் குறியீடு, வரைபட வரிசைகள் → எண், தொகையைக் குறைத்தல், நீளத்தால் வகுத்தல்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்