เราจำเป็นต้องเขียนฟังก์ชัน 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 ]