HomeLập trìnhJavaScriptHướng dẫn JavaScript...

Hướng dẫn JavaScript Array.some() – Cách lặp qua các phần tử trong một mảng


Khi bạn đang làm việc với một mảng trong JavaScript, đôi khi bạn chỉ muốn kiểm tra xem ít nhất một phần tử bên trong mảng đó vượt qua bài kiểm tra. Và bạn có thể không quan tâm đến bất kỳ trận đấu tiếp theo nào khác.

Trong trường hợp như vậy, bạn nên sử dụng some() phương pháp Javascript. Vì vậy, hãy xem nó hoạt động như thế nào.

Cách sử dụng Phương thức JavaScript Array.some()

Các some() phương pháp là một Array.propotype (tích hợp sẵn) có chức năng gọi lại và sẽ kiểm tra chức năng đó trên mỗi lần lặp đối với mục hiện tại.

Nếu bất kỳ phần tử nào trong mảng vượt qua bài kiểm tra được chỉ định trong cuộc gọi lại, phương thức sẽ dừng lặp lại và trả về true. Nếu không có phần tử nào vượt qua bài kiểm tra, phương thức sẽ trả về false.

Phương thức nhận ba tham số:

  • currentItem: Đây là phần tử bên trong mảng hiện đang được lặp lại
  • index: Đây là vị trí chỉ mục của currentItem bên trong mảng
  • array: Điều này đại diện cho bộ sưu tập mảng mà some() phương pháp bị ràng buộc

Một cách đơn giản để hiểu ý chính đằng sau Array.some() phương pháp là xem xét một trong những xu hướng lớn nhất của chúng ta với tư cách là con người: sự khái quát. Mọi người có xu hướng khái quát hóa chỉ dựa trên một kinh nghiệm hoặc nhận thức duy nhất.

Đọc thêm  Ví dụ JavaScript Console.log() – Cách in ra bảng điều khiển trong JS

Ví dụ, nếu một người nào đó từ một nơi nhất định cư xử theo một cách nhất định, nhiều người sẽ cho rằng mọi người từ nơi đó cũng cư xử theo cùng một cách. Mặc dù một giả định như vậy chỉ dựa trên một kinh nghiệm duy nhất.

Các some() phương pháp cơ bản quyết định thời điểm nó tìm thấy một kết quả phù hợp và trả về true.

Cách sử dụng Array.some() trong JavaScript của bạn

Trong các ví dụ sau, chúng ta sẽ xem xét thực tế về cách chúng ta có thể sử dụng some() phương pháp bên trong JavaScript của chúng tôi.

Cách kiểm tra ít nhất một trận đấu với some()

Trong ví dụ này, chúng tôi sẽ kiểm tra xem có ít nhất một nam giới bên trong không people mảng

let people = [{
    name: "Anna",
    sex: "Female"
  },

  {
    name: "Ben",
    sex: "Male"
  },

  {
    name: "Cara",
    sex: "Female"
  },
  
  {
    name: "Danny",
    sex: "Female"
  }
  
]


function isThereMale(person) {
	return person.sex === "Male"
}

console.log(people.some(person => isThereMale(person)) // true

Vì một người đàn ông thực sự tồn tại, nên some() phương thức trả về true.

Ngay cả khi chúng ta định nghĩa hai nam bên trong mảng, phương thức vẫn sẽ trả về true. Phương pháp này không quan tâm đến việc có nam thứ hai hay không, tất cả những gì nó quan tâm là người đầu tiên.

let people = [{
    name: "Anna",
    sex: "Female"
  },

  {
    name: "Ben",
    sex: "Male"
  },

  {
    name: "Cara",
    sex: "Female"
  },
  
  {
    name: "Danny",
    sex: "Female"
  },
  
  {
    name: "Ethan",
    sex: "Male"
  }
  
]


function isThereMale(person) {
	return person.sex === "Male"
}

console.log(people.some(person => isThereMale(person)) // true

Nếu tất cả các mục trong một mảng không thành công trong cuộc kiểm tra gọi lại, some() phương pháp sẽ trở lại false.

Trong ví dụ này, vì không có nam trong mảng người của chúng ta, false sẽ được trả lại thay thế:

let people = [{
    name: "Anna",
    sex: "Female"
  },

  {
    name: "Bella",
    sex: "Female"
  },

  {
    name: "Cara",
    sex: "Female"
  },
  
  {
    name: "Danny",
    sex: "Female"
  },
  
  {
    name: "Ella",
    sex: "Female"
  }
  
]


function isThereMale(person) {
		return person.sex === "Male"
}

console.log(people.some(person => isThereMale(person))) // false

Cách sử dụng tham số chỉ mục với some()

Hàm gọi lại được xác định bên trong some() có thể truy cập thuộc tính chỉ mục của mọi mục được lặp lại. Chỉ mục chỉ là một giá trị số xác định duy nhất vị trí của từng và mọi phần tử bên trong một mảng. Bằng cách đó, bạn có thể tham chiếu đến bất kỳ phần tử nào trong mảng bằng chỉ mục của nó.

Đọc thêm  Cách xây dựng hành động GitHub JavaScript đầu tiên của bạn

Ở đây, chúng tôi sử dụng giá trị chỉ mục để tạo một thông báo mà chúng tôi đăng nhập vào bảng điều khiển:

let people = [{
    name: "Anna",
    sex: "Female"
  },

  {
    name: "Ben",
    sex: "Male"
  },

  {
    name: "Cara",
    sex: "Female"
  },
  
  {
    name: "Danny",
    sex: "Female"
  },
  
  {
    name: "Ethan",
    sex: "Male"
  }
  
]


function isThereMale(person, index) {
		if (person.sex === "Male") console.log(`No ${index+1}, which is ${person.name}, is a Male`)
		return person.sex === "Male"
}

console.log(people.some((person, index) => isThereMale(person, index)))

/* 
"No 2, which is Ben, is a Male"

true
*/

Cách sử dụng đối tượng ngữ cảnh với some()

Ngoài chức năng gọi lại, some() cũng có thể nhận một đối tượng bối cảnh.

some(callbackFn, contextObj)

Sau đó chúng ta có thể tham khảo đối tượng từ bên trong gọi lại chức năng trên mỗi lần lặp, sử dụng this như một tài liệu tham khảo. Điều này cho phép chúng ta truy cập bất kỳ thuộc tính hoặc phương thức nào được xác định bên trong đối tượng ngữ cảnh.

Ví dụ về việc sử dụng đối tượng bối cảnh với some()

Trong ví dụ này, chúng tôi đang tìm cách kiểm tra xem ít nhất một người trong mảng người có phải là người ba đảng. Tức là độ tuổi của người đó rơi vào khoảng từ 30 đến 39.

Chúng ta có thể định nghĩa quy tắc bên trong conditions đối tượng và sau đó truy cập nó từ bên trong chức năng gọi lại bằng cách sử dụng this.property ký hiệu. Sau đó, chúng tôi thực hiện kiểm tra để xác định xem có ít nhất một người phù hợp với tiêu chí hay không.

let people = [{
    name: "Anna",
    age: 20
  },

  {
    name: "Ben",
    age: 35
  },

  {
    name: "Cara",
    age: 8
  },
  
  {
    name: "Danny",
    age: 17
  },
  
  {
    name: "Ethan",
    age: 28
  }
  
]

let conditions = {
	lowerAge: 30,
  upperAge: 39
}



console.log(people.some(person => function(person) {
	return person.age >= this.lowerAge && person.age <= this.upperAge
}, conditions)) // true

Vì một người (Ben) rơi vào phạm vi đó, some() sẽ trở lại true.

kết thúc

Các some() phương pháp là một Array.prototype phương thức nhận hàm gọi lại và gọi hàm đó cho mọi mục trong mảng bị ràng buộc.

Đọc thêm  Cách đổi tên nhiều khóa đối tượng trong JavaScript

Khi một mục vượt qua bài kiểm tra gọi lại, phương thức sẽ trả về true và dừng vòng lặp. Nếu không, nó sẽ trả về false.

Ngoài chức năng gọi lại, some() phương thức cũng có thể lấy một đối tượng ngữ cảnh làm đối số thứ hai. Điều này sẽ cho phép bạn truy cập bất kỳ thuộc tính nào của nó từ chức năng gọi lại bằng cách sử dụng this.

Tôi hy vọng bạn có một cái gì đó hữu ích từ bài viết này.

Tôinếu bạn muốn tìm hiểu thêm về Phát triển Web, vui lòng truy cập trang web của tôi Blog.

Cảm ơn bạn đã đọc và hẹn gặp lại.

P/S: Nếu bạn đang học JavaScript, tôi đã tạo một Sách điện tử dạy 50 chủ đề về JavaScript bằng các ghi chú kỹ thuật số được vẽ bằng tay. Kiểm tra nó ra ở đây.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status