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

การกำหนดอันดับตามคะแนนใน JavaScript


ปัญหา

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