Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เรียงลำดับตัวเลขจากมากไปหาน้อยแต่มี `0` ที่จุดเริ่มต้น JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวเลข ฟังก์ชันควรจัดเรียงอาร์เรย์ของตัวเลขตามเกณฑ์ต่อไปนี้ -

  • ---หากอาร์เรย์มีเลขศูนย์ใดๆ อยู่ ทั้งหมดควรปรากฏขึ้นที่จุดเริ่มต้น
  • ---ตัวเลขที่เหลือทั้งหมดควรเรียงตามลำดับที่ลดลง

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตเป็น −

const arr = [4, 7, 0 ,3, 5, 1, 0];

หลังจากใช้การเรียงลำดับแล้ว อาร์เรย์ควรกลายเป็น −

const output = [0, 0, 7, 5, 4, 3, 1];

เราจะใช้วิธี Array.prototype.sort() ที่นี่

สำหรับการเรียงลำดับที่ลดลง เราจะนำความแตกต่างของอาร์กิวเมนต์ที่สองของฟังก์ชันการเรียงลำดับจากอันแรก และถ้าค่าใดเป็นเท็จ (ศูนย์) เราจะใช้ Number.MAX_VALUE แทนค่านั้น

ตัวอย่าง

const arr = [4, 7, 0 ,3, 5, 1, 0];
const specialSort = (arr = []) => {
   const sorter = (a, b) => {
      return (b || Number.MAX_VALUE) - (a || Number.MAX_VALUE);
   };
   arr.sort(sorter);
};
specialSort(arr);
console.log(arr);

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

[
   0, 0, 7, 5,
   4, 3, 1
]