Chuyển đổi đối số thành Array JavaScript

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à

  1. 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ẻ
  2. 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 đó

Làm cách nào tôi có thể chuyển đổi đối tượng đối số thành một mảng trong JavaScript?

arguments là một đối tượng dạng mảng . from() , hoặc lây lan cú pháp using one of slice() , Array.from() , or spread syntax . Đối với các trường hợp sử dụng phổ biến, sử dụng nó như một đối tượng giống như mảng là đủ, vì cả hai đều có thể lặp lại và có các chỉ số về độ dài và số.

Làm cách nào để chuyển đổi danh sách thành mảng trong JavaScript?

const textarea = tài liệu. getElementById('textarea'); . getElementById('mảng');

Làm cách nào bạn có thể lấy loại đối số được truyền cho một hàm?

Có hai cách để truyền đối số cho hàm. theo tham chiếu hoặc theo giá trị . Việc sửa đổi một đối số được truyền theo tham chiếu được phản ánh trên toàn bộ nhưng việc sửa đổi một đối số được truyền theo giá trị chỉ được phản ánh bên trong hàm.

Làm cách nào để chuyển nhiều đối số trong hàm JavaScript?

Khi bạn gọi một hàm trong JavaScript, bạn có thể chuyển vào bất kỳ số lượng đối số nào, bất kể khai báo hàm chỉ định điều gì . Không có giới hạn tham số chức năng. Trong hàm trên, nếu chúng ta truyền vào bao nhiêu đối số thì kết quả luôn giống nhau vì nó chỉ nhận 2 tham số đầu tiên.