Giá trị cực trị của mảng thông qua spread trong JavaScript
Hãy xem đoạn mã sau:
let max = Math.max(1, 2, 3, 4, 5);
Như bạn thấy, mã này tìm giá trị lớn nhất trong các số. Nhưng phải làm sao nếu các số của chúng ta được biểu diễn dưới dạng một mảng? Ví dụ, như thế này:
let arr = [1, 2, 3, 4, 5];
Tiếc là, chúng ta không thể làm như sau:
let arr = [1, 2, 3, 4, 5];
let max = Math.max(arr); // không thể truyền mảng ở đây
Tất nhiên, chúng ta có thể thủ công đặt các phần tử
mảng vào Math.max, như thế này:
let arr = [1, 2, 3, 4, 5];
let max = Math.max(arr[0], arr[1], arr[2], arr[3], arr[4]);
Tuy nhiên, trong trường hợp này, tính linh hoạt sẽ mất đi:
mã của chúng ta sẽ chỉ tìm được giá trị lớn nhất
cho mảng có 5 phần tử.
Nếu chúng ta cần nhiều hơn hoặc ít hơn phần tử trong mảng thì sao? Có giải pháp đây! Hãy sử dụng toán tử spread:
let arr = [1, 2, 3, 4, 5]
let max = Math.max(...arr);
Đoạn mã này, bất chấp sự đơn giản của nó, lại rất
mạnh mẽ. Bởi vì Math.max có thể nhận
bất kỳ số lượng tham số nào, và điều đó có nghĩa là với
toán tử spread, chúng ta có thể sử dụng mảng
với kích thước tùy ý!
Cho một mảng số. Sử dụng Math.min
và spread, hãy in ra giá trị nhỏ nhất
của mảng.