தொகுதி பாடங்கள் (4/4)
வரிசைப்படுத்து
JavaScript இல் ஒரு வரிசையை வரிசைப்படுத்துவது ஒரு பெரிய பொறியைக் கொண்டுள்ளது: sort() அசல் வரிசையை மாற்றுகிறது
மற்றும் ** முன்னிருப்பாக சரங்களாக வரிசைப்படுத்துகிறது**.
பொறி
const nums = [10, 2, 1, 20];
nums.sort();
// [1, 10, 2, 20] ← !? sorted as strings: "1" < "10" < "2"எண் வரிசைப்படுத்தலுக்கு நீங்கள் ஒப்பீட்டாளர் (a, b) => number:
a - b< 0 →aமுதலில் வருகிறதுa - b> 0 →bமுதலில் வருகிறதுa - b=== 0 → ஆர்டர் மாறவில்லை
const nums = [10, 2, 1, 20];
nums.sort((a, b) => a - b);
// [1, 2, 10, 20] ← ascending order
nums.sort((a, b) => b - a);
// [20, 10, 2, 1] ← descendingஒரு புலத்தின் மூலம் பொருட்களை வரிசைப்படுத்துதல்
const utenti = [
{ nome: 'Anna', eta: 30 },
{ nome: 'Luca', eta: 12 },
{ nome: 'Sara', eta: 18 },
];
utenti.sort((a, b) => a.eta - b.eta);
// [{Luca,12}, {Sara,18}, {Anna,30}]சரங்களுக்கு அவற்றை localeCompare உடன் ஒப்பிடலாம்:
const nomi = ['Bruno', 'aurora', 'Carlo'];
nomi.sort((a, b) => a.localeCompare(b));
// ['aurora', 'Bruno', 'Carlo']அசலை மாற்றவில்லை
இரண்டு விருப்பங்கள்:
// 1) copy + sort
const copia = [...nums].sort((a, b) => a - b);
// 2) toSorted (modern, ES2023)
const ordinati = nums.toSorted((a, b) => a - b);முயற்சி செய்து பாருங்கள்
`sortAcending(nums)` என்பதை வரையறுக்கவும்: வரிசையின் புதிய நகலை, ஏறுவரிசையில் எண்களாக வரிசைப்படுத்தவும். அசல் மாறக்கூடாது.
குறிப்பைக் காட்டு
[...எண்கள்].வரிசைப்படுத்து((a, b) => a - b)
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
`sortByAgeAcending(pople)` என்பதை வரையறுக்கவும்: {பெயர், வயது} வரிசை கொடுக்கப்பட்டால், வயதின்படி வரிசைப்படுத்தப்பட்ட புதிய நகலை வழங்கவும். அசல் மாறக்கூடாது.
குறிப்பைக் காட்டு
[...மக்கள்].வரிசைப்படுத்து((a, b) => a.age - b.age)
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்