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

หาค่าสูงสุดในอาร์เรย์ซ้อน (nested array) - JavaScript

สมมติว่าเราต้องเขียนฟังก์ชันง่ายๆ ใน JavaScript ที่รับอาร์เรย์ตัวเลข (ซ้อนกันได้หลายระดับ) เข้ามา และคืนค่าตัวเลขที่มากที่สุดในอาร์เรย์

ตัวอย่างเช่น หากอาร์เรย์อินพุตคือ:

const arr = [
  34, 65, 67,
  [
    43, 76, 87, 23, 56, 7,
    [
      54, 7, 87, 23, 79, 994, 2
    ],
    54
  ],
  54, 4, 2
];

ผลลัพธ์ควรเป็น 994

เราจะใช้ recursion เพื่อหาค่าสูงสุดในอาร์เรย์

ตัวอย่าง

โค้ดต่อไปนี้เป็นตัวอย่าง:

const arr = [
  34, 65, 67,
  [
    43, 76, 87, 23, 56, 7,
    [
      54, 7, 87, 23, 79, 994, 2
    ],
    54
  ],
  54, 4, 2
];

const getGreatest = (arr, greatest = -Infinity) => {
  for(let i = 0; i < arr.length; i++){
    if(Array.isArray(arr[i])){
      return getGreatest(arr[i], greatest);
    };
    if(arr[i] > greatest){
      greatest = arr[i];
    }
  };
  return greatest;
};

console.log(getGreatest(arr));

ผลลัพธ์

จะแสดงผลในคอนโซลดังนี้:

994