Trong Javascript, chúng ta thường lưu trữ dữ liệu dưới dạng mảng và các hàm chúng ta muốn gọi. Đôi khi, dữ liệu trong mảng của chúng ta chính xác là dữ liệu chúng ta muốn chuyển đến một hàm. May mắn thay, có nhiều cách trong Javascript để sử dụng mảng làm giá trị đầu vào cho các hàm. Hãy xem cách sử dụng mảng làm tham số hàm
Cách sử dụng mảng làm tham số hàm
Khi chúng ta có một hàm mà chúng ta muốn truyền một mảng vào, cách cơ bản nhất để làm điều đó sẽ như thế này
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[numbers[0], numbers[1], numbers[2]];
Tất nhiên, điều này có thể khá khó chịu, đặc biệt khi làm việc với các hàm có danh sách thuộc tính rất dài. Như vậy Javascript đã cung cấp cho chúng ta 2 cách sử dụng mảng làm tham số hàm trong Javascript -
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
3 và toán tử trải rộngTruyền mảng cho hàm bằng toán tử trải rộng
Cách hiện đại và dễ dàng nhất để truyền một mảng cho một hàm là sử dụng toán tử trải rộng. Toán tử trải rộng [
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
4] được thêm vào trước mảng. Sử dụng ví dụ trước của chúng tôi, có vẻ như thế nàylet numbers = [ 1, 2, 3 ] let myFunction = [x, y, z] => { return x + y + z; } // Returns 6 let getCalculation = myFunction[...numbers];
Chúng ta cũng có thể thêm trực tiếp mảng vào hàm mà không cần biến. Ví dụ
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...[ 1, 2, 3 ]];
Nếu bạn muốn tìm hiểu mọi thứ mà toán tử trải rộng có thể làm, hãy xem hướng dẫn của tôi về điều đó tại đây
Truyền mảng cho hàm bằng apply[]
Một cách khác để làm điều này là sử dụng
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
3. Nếu bạn không quen với trường hợp sử dụng chính của let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
3, hãy xem hướng dẫn đầy đủ của tôi về đối tượng này của Javascript tại đâyCuối cùng,
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
3 cho phép chúng ta lấy một hàm và truyền một mảng vào đó. Thuộc tính đầu tiên của 3 thực sự đề cập đến đối tượnglet numbers = [ 1, 2, 3 ] let myFunction = [x, y, z] => { return x + y + z; } // Returns 6 let getCalculation = myFunction[...numbers];
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
0 mà chúng ta muốn sử dụng trên hàm. Đối số thứ hai là một mảng gồm tất cả các tham số cho hàm đó. Điều đó có nghĩa là bạn có thể xác định cấu trúc của let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
0 cũng như chuyển một mảng vào chính hàm đóĐiều này rõ ràng có một số lợi ích cụ thể khi so sánh với toán tử chênh lệch [
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
4], vì vậy nó có thể phù hợp hơn tùy thuộc vào những gì bạn muốn đạt được. Sử dụng ví dụ trước, chúng ta có thể truyền một mảng vào hàm của mình như vậylet myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction.apply[{}, [ 1, 2, 3 ]];
Ở đây, tôi đang để trống đối tượng
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
0, vì vậy nếu chúng ta sử dụng 0 tronglet numbers = [ 1, 2, 3 ] let myFunction = [x, y, z] => { return x + y + z; } // Returns 6 let getCalculation = myFunction[...numbers];
let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
5, thì đó sẽ là một đối tượng trống - đó là điều mà đối số đầu tiên của let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
3 thực hiện. Thứ hai là mảng của chúng tôi let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
7, lần lượt đề cập đến let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
8, let numbers = [ 1, 2, 3 ]
let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...numbers];
9 và let myFunction = [x, y, z] => {
return x + y + z;
}
// Returns 6
let getCalculation = myFunction[...[ 1, 2, 3 ]];
0