முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 6 · பாடம் 4 இன் 4பாடத்திட்டத்தில் 24/32~12 min
தொகுதி பாடங்கள் (4/4)

வரிசைப்படுத்து

JavaScript இல் ஒரு வரிசையை வரிசைப்படுத்துவது ஒரு பெரிய பொறியைக் கொண்டுள்ளது: sort() அசல் வரிசையை மாற்றுகிறது மற்றும் ** முன்னிருப்பாக சரங்களாக வரிசைப்படுத்துகிறது**.

பொறி

JS
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 → ஆர்டர் மாறவில்லை
JS
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

ஒரு புலத்தின் மூலம் பொருட்களை வரிசைப்படுத்துதல்

JS
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 உடன் ஒப்பிடலாம்:

JS
const nomi = ['Bruno', 'aurora', 'Carlo'];
nomi.sort((a, b) => a.localeCompare(b));
// ['aurora', 'Bruno', 'Carlo']

அசலை மாற்றவில்லை

இரண்டு விருப்பங்கள்:

JS
// 1) copy + sort
const copia = [...nums].sort((a, b) => a - b);

// 2) toSorted (modern, ES2023)
const ordinati = nums.toSorted((a, b) => a - b);

முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#js.m6.l4.e1
முயற்சிகள்: 0ஏற்றுகிறது…

`sortAcending(nums)` என்பதை வரையறுக்கவும்: வரிசையின் புதிய நகலை, ஏறுவரிசையில் எண்களாக வரிசைப்படுத்தவும். அசல் மாறக்கூடாது.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

[...எண்கள்].வரிசைப்படுத்து((a, b) => a - b)

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

மதிப்பாய்வு பயிற்சி

உடற்பயிற்சி#js.m6.l4.e2
முயற்சிகள்: 0ஏற்றுகிறது…

`sortByAgeAcending(pople)` என்பதை வரையறுக்கவும்: {பெயர், வயது} வரிசை கொடுக்கப்பட்டால், வயதின்படி வரிசைப்படுத்தப்பட்ட புதிய நகலை வழங்கவும். அசல் மாறக்கூடாது.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

[...மக்கள்].வரிசைப்படுத்து((a, b) => a.age - b.age)

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்