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

การนับจำนวนที่น้อยกว่าหลังตัวเลขที่สอดคล้องกันใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของ Numbers เป็นอาร์กิวเมนต์แรกและตัวเดียว

ฟังก์ชันของเราควรเตรียมอาร์เรย์ใหม่ตามอาร์เรย์อินพุต และแต่ละองค์ประกอบที่สอดคล้องกันของอาร์เรย์ใหม่นี้ควรนับองค์ประกอบที่เล็กกว่าองค์ประกอบที่สอดคล้องกันในอาร์เรย์ดั้งเดิม

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

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

จากนั้นผลลัพธ์ควรเป็น −

const output = [2, 4, 0, 1, 2, 1, 0, 0, 0];

คำอธิบายผลลัพธ์:

เนื่องจากจำนวนที่น้อยกว่า 4 ทางด้านขวาคือ 2 (1 และ 3) สำหรับ 7 คือ 4 (1, 4, 5, 3) เป็นต้น

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];
const countSmaller = (array = [], num) => array.reduce((acc, val) => {
   if(val < num){
      acc++;
   };
   return acc;
}, 0);
const smallerArray = (arr = []) => {
   const res = [];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      res[i] = countSmaller(arr.slice(i, arr.length), el);
   };
   return res;
};
console.log(smallerArray(arr));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

[ 2, 4, 0, 1, 2, 1, 0, 0, 0 ]