Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

อาร์เรย์ผู้นำ (Leaders Array) ใน JavaScript


องค์ประกอบในอาร์เรย์ของตัวเลขจะเป็น "ผู้นำ" หากมันมากกว่าองค์ประกอบทั้งหมดด้านขวาของมัน เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ตัวเลขและคืนค่าสับอาร์เรย์ขององค์ประกอบที่เป็นผู้นำ

เช่น อาร์เรย์อินพุตคือ: [23, 55, 2, 56, 3, 6, 7, 1] ผลลัพธ์ควรเป็น: [56, 7, 1]

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน

ตัวอย่าง

const arr = [23, 55, 2, 56, 3, 6, 7, 1];
const leaderArray = arr => {
  const creds = arr.reduceRight((acc, val) => {
    let { max, res } = acc;
    if(val > max){
      res.unshift(val);
      max = val;
    };
    return { max, res };
  }, {
    max: -Infinity,
    res: []
  })
  return creds.res;
};
console.log(leaderArray(arr));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้

[56, 7, 1]