Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm số lớn nhất trong mảng 3D JavaScript

Cho mảng 3 chiều (nested array) sau:

var theValuesIn3DArray = [75, [18, 89], [56, [97], [99]]];

Ta có thể dùng phương thức flat(Infinity) để làm phẳng mảng hoàn toàn, sau đó áp dụng Math.max() kết hợp với toán tử spread (...).

Ví dụ

var theValuesIn3DArray = [75, [18, 89], [56, [97], [99]]];

Array.prototype.findTheLargestNumberIn3dArray = function () {
  return Math.max(...this.flat(Infinity));
};

console.log("Số lớn nhất trong mảng 3D là: ");
console.log(theValuesIn3DArray.findTheLargestNumberIn3dArray());

Chạy chương trình:

node fileName.js

Kết quả

Số lớn nhất trong mảng 3D là: 99

Giải thích:

  • flat(Infinity): Làm phẳng mảng đến độ sâu vô hạn, biến mảng lồng nhau thành mảng 1 chiều: [75, 18, 89, 56, 97, 99].
  • ... (spread): Trải các phần tử thành đối số cho Math.max().
  • Math.max(): Trả về giá trị lớn nhất.

Cách thay thế không sửa prototype:

const findMax3D = (arr) => Math.max(...arr.flat(Infinity));
console.log(findMax3D(theValuesIn3DArray)); // 99