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

หาตัวเลขมากที่สุดในอาร์เรย์ซ้อน (Nested Array) ใน JavaScript

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

ตัวอย่างเช่น - ถ้าอาร์เรย์อินพุตคือ:

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

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

314

เราจะใช้ recursion เพื่อหาตัวเลขมากที่สุดในอาร์เรย์ มาเขียนโค้ดกัน:

ตัวอย่างโค้ด

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

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

console.log(findGreatest(arr));

ผลลัพธ์

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

314