ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ arr ของตัวเลขเป็นอาร์กิวเมนต์เดียว
โดยพื้นฐานแล้ว อาร์เรย์จะประกอบด้วยคะแนนที่นักเรียนบางคนทำ โดยอิงจากอาร์เรย์ของคะแนน หน้าที่ของเราควรจัดเตรียมและส่งคืนอาร์เรย์ของอันดับซึ่งควรมีอันดับของนักเรียนที่เกี่ยวข้องโดยพิจารณาจากคะแนนของพวกเขาในอาร์เรย์คะแนน ar.
ตัวอย่างเช่น สำหรับรายการสูงสุดในอาร์เรย์ arr รายการที่สอดคล้องกันในอาร์เรย์เอาต์พุตควรเป็น 1, 2 สำหรับค่าสูงสุดอันดับสองเป็นต้น
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr = [50, 47, 39, 32, 31];
จากนั้นผลลัพธ์ควรเป็น −
const output = [1, 2, 3, 4, 5];
คำอธิบายผลลัพธ์:
เครื่องหมายในอาร์เรย์ arr อยู่ในลำดับที่ลดลงแล้ว ซึ่งหมายความว่าคะแนนสูงสุดอยู่ที่ดัชนีแรกสุดเป็นต้น
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [50, 47, 39, 32, 31];
const findRanks = (arr = []) => {
const { length } = arr;
let sortArray = arr.slice();
sortArray.sort((a,b) => b - a);
const result = [];
for(let i = 0; i < length; i++){
const j = sortArray.indexOf(arr[i])
result.push(j + 1);
}
return result;
};
console.log(findRanks(arr)); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ 1, 2, 3, 4, 5 ]