👨💻 Javascriptda massivlarni sort() qilish1️⃣-holatTasavvur qilaylik bizda ushbu massiv mavjud:
const colors = ["red", "green", "yellow", "blue", "white"]
Bunda faqatgina string ma'lumot tipidagi elementlar mavjud va agarda biz unga sort() metodidan foydalansak u elementlarni alifbo bo'yicha saralaydi.
console.log(colors.sort());
// Natija: [ 'blue', 'green', 'red', 'white', 'yellow' ]
2️⃣-holatTasavvur qilaylik endi bizda raqamlardan tashkil topgan massiv mavjud:
const numbers = [12,34,23,5,56,75]
Ushbu massivga sort() metodidan foydalansak natija biz o'ylagandan boshqacha chiqadi.
console.log(numbers.sort())
// Natija: [ 12, 23, 34, 5, 56, 75 ]
Bunga nima sabab bo'ldi? Chunki sort() metodi number tipidagi elementlarni qabul qilsa ham uni string deb hisoblaydi va uni ham alifbo bo'yicha tartiblaydi va shuninch uchun shunday natija qaytaradi.
🤔 Buni qanday yechish mumkin?Buning uchun biz bir alohida funksiya yozishimiz kerak bo'ladi.
const numbers = [12,34,23,5,56,75]
function compareNum(a, b){
return a - b;
}
console.log(numbers.sort(compareNum));
// Natija: [ 5, 12, 23, 34, 56, 75 ]
Bu yerda compareNum funksiyasi qanday vazifa bajaryapti? Funksiya har bir juftlik elementlarini taqqoslaydi. Agar a - b natija manfiy bo'lsa a element oldin keladi, nol bo'lsa tartibi o'zgarmaydi va musbat bo'lsa b element oldin keladi.
Anonim #JavaScript #dasturlash
🔉
@aziziy_dev | 🌐
Instagram | 🌐
YouTube |⚡
Boost