Javascript vượt qua mảng dưới dạng nhiều đối số
Trong chương này chúng ta sẽ học cách làm tương tự. Ngoài ra, cách truyền mảng cho các hàm như tham số Show Một hàm có thể được gọi với bất kỳ số lượng đối số nào, bất kể nó được định nghĩa như thế nào thích ở đây
Sẽ không có lỗi vì đối số “thừa thãi”. Nhưng tất nhiên trong kết quả chỉ có hai cái đầu tiên được tính, vì vậy kết quả trong đoạn mã trên là 1Phần còn lại của các tham số có thể được đưa vào định nghĩa hàm bằng cách sử dụng ba dấu chấm 0 theo sau là tên của mảng sẽ chứa chúng. Các dấu chấm có nghĩa đen là “tập hợp các tham số còn lại thành một mảng”Chẳng hạn, để tập hợp tất cả các đối số vào mảng 3
Chúng ta có thể chọn lấy các tham số đầu tiên làm biến và chỉ thu thập phần còn lại Ở đây, hai đối số đầu tiên đi vào các biến và phần còn lại đi vào mảng 4
Các tham số còn lại phải ở cuối Các tham số còn lại tập hợp tất cả các đối số còn lại, vì vậy những điều sau đây không có ý nghĩa và gây ra lỗi
5 phải luôn ở vị trí cuối cùngNgoài ra còn có một đối tượng giống như mảng đặc biệt có tên là 6 chứa tất cả các đối số theo chỉ mục của chúngVí dụ
Trước đây, các tham số còn lại không tồn tại trong ngôn ngữ và sử dụng 6 là cách duy nhất để lấy tất cả các đối số của hàm. Và nó vẫn hoạt động, chúng ta có thể tìm thấy nó trong mã cũNhưng nhược điểm là mặc dù 6 vừa giống mảng vừa có thể lặp, nhưng nó không phải là mảng. Nó không hỗ trợ các phương thức mảng, vì vậy chúng ta không thể gọi 9 chẳng hạnNgoài ra, nó luôn chứa tất cả các đối số. Chúng tôi không thể chụp chúng một phần, giống như chúng tôi đã làm với các tham số còn lại Vì vậy, khi chúng tôi cần các tính năng này, thì các tham số còn lại được ưu tiên Hàm mũi tên không có Nếu chúng ta truy cập đối tượng 6 từ một hàm mũi tên, nó sẽ lấy chúng từ hàm “bình thường” bên ngoàiĐây là một ví dụ
Như chúng ta đã nhớ, hàm mũi tên không có 2 của riêng chúng. Bây giờ chúng tôi biết họ cũng không có đối tượng đặc biệt 6Chúng ta vừa xem cách lấy một mảng từ danh sách các tham số Nhưng đôi khi chúng ta cần làm ngược lại Chẳng hạn, có một hàm tích hợp Math. max trả về số lớn nhất từ danh sách
Bây giờ giả sử chúng ta có một mảng 4. Làm thế nào để chúng ta gọi 5 với nó?Việc chuyển nó "nguyên trạng" sẽ không hiệu quả, bởi vì 5 mong đợi một danh sách các đối số dạng số, không phải một mảng đơn lẻ
Và chắc chắn chúng tôi không thể liệt kê thủ công các mục trong mã 7, bởi vì chúng tôi có thể không chắc có bao nhiêu mục. Khi tập lệnh của chúng tôi thực thi, có thể có rất nhiều hoặc có thể không có gì. Và điều đó sẽ trở nên xấu xíTruyền bá cú pháp để giải cứu. Nó trông tương tự như các tham số còn lại, cũng sử dụng 0, nhưng hoàn toàn ngược lạiKhi 9 được sử dụng trong lời gọi hàm, nó sẽ “mở rộng” một đối tượng có thể lặp lại 0 vào danh sách các đối sốCho 5
Chúng tôi cũng có thể vượt qua nhiều lần lặp theo cách này
Chúng tôi thậm chí có thể kết hợp cú pháp lây lan với các giá trị bình thường 0Ngoài ra, cú pháp trải rộng có thể được sử dụng để hợp nhất các mảng 1Trong các ví dụ trên, chúng tôi đã sử dụng một mảng để thể hiện cú pháp trải rộng, nhưng bất kỳ lần lặp nào cũng sẽ làm được Chẳng hạn, ở đây chúng ta sử dụng cú pháp spread để biến chuỗi thành mảng ký tự 2Cú pháp trải rộng bên trong sử dụng các trình vòng lặp để thu thập các phần tử, giống như cách mà 2 thực hiệnVì vậy, đối với một chuỗi, 2 trả về các ký tự và 4 trở thành 5. Danh sách các ký tự được chuyển đến trình khởi tạo mảng 6Đối với tác vụ cụ thể này, chúng tôi cũng có thể sử dụng 7, vì nó chuyển đổi một lần lặp (như một chuỗi) thành một mảng 3Kết quả giống như 6Nhưng có một sự khác biệt tinh tế giữa 9 và 0
Vì vậy, đối với nhiệm vụ biến một thứ gì đó thành một mảng, 7 có xu hướng phổ biến hơnBạn có nhớ khi chúng ta nói về 3 không?Có thể làm điều tương tự với cú pháp lây lan 4Lưu ý rằng có thể làm điều tương tự để tạo một bản sao của một đối tượng 5Cách sao chép một đối tượng này ngắn hơn nhiều so với 4 hoặc cho một mảng 5 vì vậy chúng tôi muốn sử dụng nó bất cứ khi nào có thểKhi chúng tôi thấy 6 trong mã, đó là tham số còn lại hoặc cú pháp trải rộngCó một cách dễ dàng để phân biệt giữa chúng
Sử dụng các mẫu
Họ cùng nhau giúp di chuyển giữa một danh sách và một mảng các tham số một cách dễ dàng Tất cả các đối số của lệnh gọi hàm cũng có sẵn ở dạng “kiểu cũ” 6. đối tượng lặp giống như mảng
Làm cách nào để chuyển nhiều giá trị trong mảng trong JavaScript?Sử dụng Mảng. phương thức concat() để đẩy nhiều giá trị vào một mảng , e. g. kết quả const = mảng. concat('b', 'c', 'd');.
Làm cách nào để trải mảng dưới dạng đối số trong JavaScript?Trải đối số hàm
. Giải trình. Một lời gọi áp dụng trông như sau. chức năng. áp dụng (giá trị này, [param1, param2,. ])use apply(). Explanation: An apply invocation looks as follows: func. apply(thisValue, [param1, param2, ...])
Làm cách nào để chuyển nhiều đối số trong JavaScript?Khi 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.
Bạn có thể truyền mảng dưới dạng tham số không?Mảng có thể được truyền dưới dạng đối số cho tham số phương thức . Vì mảng là kiểu tham chiếu nên phương thức có thể thay đổi giá trị của các phần tử. |