Nếu bạn muốn chuyển một mảng vào một hàm matrixdic. Bạn có thể sử dụng trải rộng ES6 để biến mảng đó thành danh sách các đối số. Yay, sạch sẽ hơn rất nhiều và không có null vô ích so với cách áp dụng cũ 👏
function sandwich(a, b, c) { console.log(a); // '🍞' console.log(b); // '🥬' console.log(c); // '🥓' } const food = ['🍞', '🥬', '🥓']; // Old way sandwich.apply(null, food); // ✅ ES6 way sandwich(...food);
Sử dụng nó với các chức năng Math
Khả năng biến một mảng thành một danh sách các đối số cực kỳ tiện dụng với các hàm Math
Thí dụ. Tìm Số Lớn Nhất
Giả sử bạn muốn tìm số lớn nhất bằng cách sử dụng hàm const largest = Math.max(5, 7, 3, 4); console.log(largest); // 7 0
const largest = Math.max(5, 7, 3, 4); console.log(largest); // 7
Nhưng hiếm khi, bạn sẽ chuyển các giá trị riêng lẻ. Nhiều khả năng, bạn sẽ muốn tìm phần tử lớn nhất trong một mảng. Vì vậy, câu hỏi bây giờ là, làm thế nào để bạn chuyển một mảng giá trị vào một hàm chấp nhận các đối số riêng lẻ chứ KHÔNG phải một mảng?
Điều này sẽ là khủng khiếp
const numbers = [5, 7, 3]; // 🤮 Yuck! Math.max(numbers[0], numbers[1], numbers[2]); // ❌ And this won't work Math.max(numbers); // NaN
May mắn cho chúng tôi, chúng tôi có thể sử dụng toán tử Spread của ES6
const numbers = [5, 7, 3]; // 😍 Much Better! Math.max(...numbers); // 7
Điều mà const largest = Math.max(5, 7, 3, 4); console.log(largest); // 7 1 đang làm ở đây là lấy phần tử mảng và mở rộng hoặc giải nén nó thành một danh sách các đối số cho hàm variadic của chúng ta
const numbers = [5, 7, 3]; console.log(...numbers); // 5 7 3
Giải thích const largest = Math.max(5, 7, 3, 4); console.log(largest); // 7 1 bằng thuật ngữ không dành cho nhà phát triển
Nếu bạn thấy điều lan truyền này vẫn còn khó hiểu. Có lẽ hãy để tôi cố gắng giải thích nó với những con búp bê làm tổ của Nga. Vì vậy, tôi thích coi mảng như những con búp bê làm tổ của Nga. Và những gì lây lan làm là
- Nó giải nén (trải rộng) những con búp bê lồng nhau thành những con búp bê riêng lẻ
- Và bây giờ bạn có tất cả các hình nhân (đối số) riêng lẻ này để đặt gọn gàng trong tủ trưng bày (chức năng) của bạn
Không chắc chắn nếu lời giải thích này giúp?
Truyền nhiều mảng dưới dạng đối số hàm
Một khả năng lây lan siêu cường khác là kết hợp các mảng
________số 8_______
Vì vậy, chúng ta có thể sử dụng siêu năng lực này để truyền nhiều mảng làm đối số hàm 💪
const one = [1, 2, 3]; const two = [4, 5, 6]; Math.max(...one, ...two); // 6
Đối với những người quan tâm, tự hỏi nếu bạn có thể vượt qua 3 mảng. Vâng, bạn cá là. Nó giống như chú thỏ cung cấp năng lượng, nó cứ đi và đi mãi. (Bài đăng này không được tài trợ bởi Energizer lol. Nhưng điều đó có thể thay đổi, đánh tôi lên Energizer. Tôi muốn một số tiền tài trợ 😂)
const one = [1, 2, 3]; const two = [4, 5, 6]; const three = [2, 100, 2]; Math.max(...one, ...two, ...three); // 100
Hàm biến thiên là gì?
Vì vậy, bạn có thể nhận thấy tôi sử dụng thuật ngữ hàm biến thiên. Những người làm khoa học máy tính có lẽ đã nghe thuật ngữ này. Nhưng đối với những cool bee còn lại như mình 😝 thì có lẽ sẽ không mấy quen thuộc. Hàm biến thiên là hàm chấp nhận số lượng đối số vô hạn hoặc có thể thay đổi. Và hàm const largest = Math.max(5, 7, 3, 4); console.log(largest); // 7 0 là một trong những hàm biến thiên đó