Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

Lưu trữ

arr.forEach(callback[, thisArg])
0 hiện tại trong một số biến khác trong
arr.forEach(callback[, thisArg])
1 như thế này

function Chart() {
    var self = this;
    this.draw = function(data) {
        data.forEach(function(value) {
            //do something with values
            console.log(self);
        });
    }
};

Ngoài ra, bạn có thể vượt qua

arr.forEach(callback[, thisArg])
0 như sau, vì
arr.forEach(callback[, thisArg])
3 chấp nhận
arr.forEach(callback[, thisArg])
0

arr.forEach(callback[, thisArg])

Ví dụ,

this.draw = function(data) {
    data.forEach(function(value) {
        //do something with values
        console.log(this);
    }, this); // Pass the current object as the second parameter
}

Phát triển web

Cập nhật lần cuối vào ngày 3 tháng 5 năm 2022

JavaScript cho mỗi vòng lặp là một cách nhanh chóng và dễ dàng để lặp lại trên một mảng. Được sử dụng như một giải pháp thay thế cho vòng lặp For, nó có thể làm cho mã khai báo hơn và dễ đọc hơn.


Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

Đối với nhiều nhà phát triển, JavaScript hoạt động như giới thiệu về mô hình lập trình chức năng. Và nếu bạn chưa bao giờ gặp phải các chức năng gọi lại trước đây, JavaScript cho mỗi chức năng có thể trông hơi buồn cười.

Trong bài viết nhanh này, chúng ta sẽ xem cách lặp lại một mảng dữ liệu bằng cách sử dụng chức năng foreach của JavaScript. Chúng tôi sẽ xem xét các cách khác nhau để gọi nó và thảo luận khi nào nên sử dụng so với truyền thống cho vòng lặp.

Sử dụng JavaScript cho mỗi hàm

Trong JavaScript, đối tượng mảng chứa phương thức

arr.forEach(callback[, thisArg])
5. Điều này có nghĩa là trên bất kỳ mảng nào, chúng ta có thể gọi
arr.forEach(callback[, thisArg])
5 như vậy:

let fruits = ['apples', 'oranges', 'bananas'];

fruits.forEach(function (item, index) {
  console.log(item, index)
})

Điều này nên in ra như sau.

apples 0
oranges 1
bananas 2

Hãy giải thích cách thức hoạt động của nó.

  1. Chúng tôi chuyển một hàm ẩn danh cho phương pháp
    arr.forEach(callback[, thisArg])
    
    5.
  2. Trong hàm ẩn danh đó, chúng tôi bao gồm các tham số để có quyền truy cập vào
    arr.forEach(callback[, thisArg])
    
    8 hiện tại và số
    arr.forEach(callback[, thisArg])
    
    9 trong mảng mà mục này đại diện.

Hàm chúng tôi cung cấp cho hàm

arr.forEach(callback[, thisArg])
5 có ba tham số (hai trong số đó là tùy chọn).

  • (Yêu cầu) Phần tử hiện tại - biểu thị phần tử hiện tại
  • (Tùy chọn) Chỉ mục - Trả về chỉ mục hiện tại
  • (Tùy chọn) Mảng - Trả về toàn bộ mảng cho mỗi vòng lặp

Cách thay thế để gọi nó

Tùy chọn 1: Chức năng ẩn danh

Cách đầu tiên của cách thay thế để gọi chức năng này là sử dụng hàm ẩn danh. Đây là những gì chúng ta vừa thấy.

arr.forEach(function (item) { // Anonymous function
  // Write what you'd like to happen here
})

Tùy chọn 2: Sử dụng các hàm mũi tên

Tùy chọn thứ hai là sử dụng chức năng mũi tên.

arr.forEach((item, index) => console.log(item, index))

Thử thứ này đi. Nó cho phép bạn viết vòng lặp trên một dòng.

Tùy chọn 3: Hàm gọi lại

Tùy chọn cuối cùng là sử dụng chức năng gọi lại, thực sự chỉ là một hàm được xác định riêng biệt mà chúng ta chuyển làm đối số cho hàm

arr.forEach(callback[, thisArg])
5.

let fruits = ['apples', 'oranges', 'bananas'];

function printPretty (item, index) {
  console.log(`${index} - ${item}`)
}

fruits.forEach(printPretty);

Điều này sẽ in ra như sau:

0 - apples
1 - oranges
2 - bananas

Khi nào nên sử dụng FOR LOOP so với A FOR LOOP

Hầu hết chúng ta trước tiên tìm hiểu về các vòng lặp theo cách truyền thống - bạn biết đấy, các vòng lặp với các quầy được tăng lên? Như thế này:

let fruits = ['apples', 'oranges', 'bananas'];

for (let index = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

Sự thật là, bạn có thể sử dụng các vòng lặp truyền thống hoặc

arr.forEach(callback[, thisArg])
5. Nó không quan trọng.

Tuy nhiên, sử dụng các vòng lặp

arr.forEach(callback[, thisArg])
5 kết quả trong mã có vẻ nhiều hơn và dễ đọc hơn rất nhiều, đặc biệt nếu bạn đang xử lý các vòng lặp lồng nhau (mà tôi chọn cố gắng tránh ngay từ đầu).declarative and easy to read, especially if you're dealing with nested loops (which I opt to try to avoid in the first place).



Thảo luận

Thích cái này? Hát lớn và tự hào.



Giữ liên lạc!

Tận hưởng cho đến nay? Tham gia hơn 15000 phần mềm cần thiết nhận được bài đăng của tôi được gửi thẳng vào hộp thư đến của bạn mỗi tuần. Tôi sẽ không spam ya. 🖖

Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

Thông tin về các Tác giả

Khalil Stemmler, phần mềm Essentialist ⚡
Software Essentialist ⚡

Khalil là một nhà phát triển phần mềm, nhà văn và nhạc sĩ. Ông thường xuyên xuất bản các bài viết về thiết kế dựa trên tên miền, thiết kế phần mềm và TypeScript & Node.js thực tiễn tốt nhất cho các ứng dụng quy mô lớn.




Xem thêm trong phát triển web


Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

Bạn cũng có thể thích ...

Một vài bài viết liên quan

Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

Hơn 85 tỷ đô la chi cho việc sửa mã xấu [BootCamp, Junior Devs, JavaScript và Nguyên tắc thiết kế phần mềm] Phát triển web

Ngày càng có nhiều tiền được chi tiêu bởi các công ty để duy trì mã JavaScript xấu. Đây là nơi tôi nghĩ rằng ngành công nghiệp của chúng tôi cần phải cha ...

Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

TypeScript so với JavaScript [Ưu / Cons] Phát triển web

TypeScript được cho là một trong những điều tốt nhất để đến thế giới JavaScript giúp các nhà phát triển thoải mái tạo ra Enterp phức tạp ...

Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

Cách xây dựng một thành phần bài viết liên quan với Gatsby.jsweb Development

Đây là cách xây dựng thành phần "bài đăng liên quan" cho trang web gatsby.js của bạn.

Hướng dẫn javascript array foreach anonymous function - mảng javascript foreach chức năng ẩn danh

Mã sạch hơn với Async / Await TutorialWeb Development

Lập trình không đồng bộ trong JavaScript từng khó viết mã sạch với. Hôm nay chúng tôi có các lựa chọn. Bạn có thể viết không đồng bộ ...

Nội dung xu hướng

Cách học Thiết kế phần mềm và kiến ​​trúc | Bản đồ kiến ​​trúc & thiết kế phần mềm đầy đủ

Thiết kế và kiến ​​trúc phần mềm là khá nhiều lĩnh vực nghiên cứu của riêng nó trong lĩnh vực điện toán, như DevOps hoặc UX Design. Dưới đây là bản đồ mô tả độ rộng của thiết kế và kiến ​​trúc phần mềm, từ mã sạch đến microkernels.

[Sê-ri] Thiết kế dựa trên tên miền W/ TypeScript và Node.js

Tìm hiểu cách sử dụng DDD và các khái niệm lập trình hướng đối tượng để mô hình hóa các phụ trợ Node.js phức tạp.

Bạn muốn được thông báo khi nội dung mới ra mắt?

Tham gia hơn 15000 phần mềm khác các nhà thiết yếu học tập học cách làm chủ các yếu tố cần thiết của thiết kế và kiến ​​trúc phần mềm.

Liệu foreach mảng đột biến?

foreach () không làm biến đổi mảng mà nó được gọi, nhưng hàm được cung cấp như CallbackFn có thể., but the function provided as callbackFn can.

Là không đồng bộ không?

Foreach không được thiết kế cho mã không đồng bộ... (It was not suitable for promises, and it is not suitable for async-await.) For example, the following forEach loop might not do what it appears to do: const players = await this.

Chúng ta có thể phá vỡ vòng lặp foreach trong javascript không?

Không có cách nào để dừng hoặc phá vỡ vòng lặp foreach () ngoài việc ném một ngoại lệ.Nếu bạn cần hành vi như vậy, phương thức foreach () là công cụ sai.

Tại sao foreach trở lại không xác định?

Thuộc tính "không thể đọc 'Foreach' của lỗi không xác định" xảy ra khi gọi phương thức Foreach theo giá trị không xác định.Để giải quyết lỗi, hãy đảm bảo khởi tạo biến thành đúng giá trị và chỉ gọi phương thức Foreach trên đúng loại dữ liệu.occurs when calling the forEach method on an undefined value. To solve the error make sure to initialize the variable to the correct value and only call the forEach method on the correct data type.