Hàm array.every() trong Javascript
Trong bài này chúng ta sẽ tìm hiểu hàm every trong javascript, hàm này sẽ duyệt qua từng phần tử và kiểm tra một điều kiện nào đó có đúng hay không.
Thực chất hàm every có tác dụng gần giống với việc sử dụng vòng lặp để lặp qua tất cả các phần tử của mảng, điểm tốt duy nhất của nó là giúp ta xử lý code một cách nhanh chóng.
1. Hàm every trong javascript là gì?
Every javascript là một phương thức dành cho đối tượng mảng trong javascript. Công dụng của hàm này là giúp kiểm tra tất cả các phần tử trong mảng có thõa mãn một điều kiện nào đó hay không. Nếu tất cả phần tử đều thỏa thì sẽ trả về true, ngược lại nếu chỉ cần một phần tử không thỏa thôi là nó sẽ trả về false.
Cú pháp hàm every như sau:
Bài viết này được đăng tại [free tuts .net]
array.every(function(currentValue, index, arr), thisValue)
Trong đó:
- currentValue - giá trị của phần tử hiện tại.
- index - chỉ số của phần tử hiện tại.
- arr - mảng mà phần tử hiện tại thuộc về.
- thisValue - tham số không bắt buộc. Nếu được truyền vào thì thisValue sẽ được sử dụng làm giá trị của this, nếu không được truyền vào thì giá trị this là "undefined".
Mỗi phương thức xử lý trong hàm every sẽ thực hiện một lần với lần lượt tất cả các phẩn tử trong mảng,
Nếu có một phần tử của mảng không thỏa mãn phương thức của hàm every và trả về False, hàm every đó sẽ trả về False. Nếu không có lỗi xảy ra hàm every sẽ trả về True.
Lưu ý:
- Hàm every sẽ không thực hiện chức năng truyền vào đối với các phần tử không có giá trị.
- Hàm every không làm thay đổi mảng ban đầu.
Bạn có thể tách function ra một hàm riêng biệt như sau:
array.every(check, thisValue) function check(currentValue, index, arr){ // Code }
Ví dụ: Kiểm tra tất cả phần tử của mảng có lớn hơn 20 không.
// Danh sách mảng const ages = [32, 33, 16, 40]; // Kiểm tra console.log(ages.every(checkAge)) // Returns false // Hàm kiểm tra giá trị truyền vào có lớn hơn 20 không function checkAge(age) { return age > 20; }
Vì phần tử thứ 3 có giá trị là 16, bé hơn 20 nên kết quả sẽ trả về là false.
2. Thêm ví dụ về hàm every trong javsascript
Ví dụ 1: Sử dụng hàm every để kiểm tra điểm số của học sinh được lưu dưới dạng mảng có đủ để đỗ kì thì không.
Quy ước: tất cả các môn trên hoặc bằng 5 điểm thì được xem là đỗ.
var score = [7, 8, 9, 10,3]; function checkPass(score) { return score >= 5; } function myFunction() { if (score.every(checkPass) == true) { document.getElementById("demo").innerHTML = 'Đủ điểm đỗ!'; }else{ document.getElementById("demo").innerHTML = 'không đủ điểm đỗ!'; } }
Ví dụ 2: Kiểm tra xem trong mảng numbers đều là những con số hay không.
var numbers = [ 1, 2, 3, "4" ]; function checkNumber(number) { return typeof number == "number"; } var check = numbers.every(checkNumber); console.log(check); // false
Như vậy là chúng ta đã học xong cách sử dụng hàm every trong js. Hãy làm theo ví dụ và kiểm tra kết quả nhé.