ฉันมีความท้าทายใน JavaScript ที่ฉันพยายามคิดอยู่พักหนึ่งแล้ว
พิจารณาอาร์เรย์นี้:
let arr = [0, 1, 0, 2, 0, 3, 0, 4, 0, 5];
ฉันต้องแสดงผลลัพธ์นี้:
arr = [0, 0, 0, 0, 0, 5, 4, 3, 2, 1]
ฉันกำลังตามสายของตรรกะนี้เพื่อวางตำแหน่งศูนย์ด้านหน้าปรับค่าดัชนี:
arr.sort((x, y) => {
if (x !== 0) {
return 1;
}
if (x === 0) {
return -1;
}
return y - x;
});
แต่ฉันติดอยู่กับผลลัพธ์นี้:
arr = [0, 0, 0, 0, 0, 1, 2, 3, 4, 5]
ใครบ้างมีเคล็ดลับในการแก้ปัญหานี้?
return x - y;
?
return y - x;
หรือไม่? แม้จะอยู่ใน javascript, ฉันไม่สามารถคิดอะไรที่จะเป็นค่ามิได้===0
!==0