Hàm array.some() trong Javascript
Trong bài này chúng ta sẽ tìm hiểu hàm some trong javascript, đây là hàm dùng để kiểm tra các phần tử trong mảng có thỏa mãn điều kiện nào đó hay không.

Trước tiên hãy xem một ví dụ mà mình lấy từ trang Mozilla dưới đây.
const array = [1, 2, 3, 4, 5]; // Hàm kiểm tra một phần tử có chia hết cho 2 hay không const even = (element) => element % 2 === 0; console.log(array.some(even)); // output: true
Kết quả trả về true, bởi vì hàm callback even có nhiệm vụ kiểm tra một giá trị có chia hết cho 2 hay không. Hàm even khi truyền vào hàm slice thì chỉ cần một phần tử chia hết cho 2 là sẽ return về true.
1. Hàm some trong javascript là gì?
Hàm some trong js có nhiệm vụ lặp qua tất cả các phần tử của mảng, mỗi lần lặp nó sẽ truyền giá trị của phần tử đang lặp vào hàm callback. Chỉ cần hàm callback return true là hàm some sẽ return true. Ngược lại, nếu duyệt hết mảng mà không có return true nào thì hàm some sẽ return false.
Bài viết này được đăng tại [free tuts .net]
Nói đơn giản, nếu một phần tử nào đó thỏa với chương trình trong hàm callback thì hàm some sẽ return true. Ngược lại nếu tất cả các phần tử đều không thỏa thì nó sẽ return false.
Cú pháp của some như sau:
// Arrow function
some((element) => { ... } )
some((element, index) => { ... } )
some((element, index, array) => { ... } )
// Callback function
some(callbackFn)
some(callbackFn, thisArg)
// Inline callback function
some(function callbackFn(element) { ... })
some(function callbackFn(element, index) { ... })
some(function callbackFn(element, index, array){ ... })
some(function callbackFn(element, index, array) { ... }, thisArg)Trong đó:
elementlà biến chứa giá trị của phần tử đang lặp.indexlà key của phần tử đang lặp.arraylà mảng gốc mà phần tử đang thuộc về.thisArglà tham số không bắt buộc. Nếu được truyền vào thìthisArgsẽ được sử dụng làm giá trị "this", nếu không được truyền vào thì giá trị "this" là "undefined".
Ví dụ: Kiểm tra xem trong mảng numbers có số nào lớn hơn 10 hay không.
function isBiggerThan10(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10); // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // trueHoặc bạn cũng có thể sử dụng arrow function cho trường hợp này như sau:
[2, 5, 8, 1, 4].some(x => x > 10); // false [12, 5, 8, 1, 4].some(x => x > 10); // true
2. Một ví dụ khác về hàm some trong js
Ví dụ: Sử dụng hàm some để kiểm tra điểm số của học sinh được lưu dưới dạng mảng có bị trượt kì thì không.
Quy ước: có một môn dưới 5 điểm sẽ bị tính là trượt.
Bài này khá đơn giản, ta chỉ cần viết một hàm kiểm tra một số, nếu số bé hơn 5 thì return false, ngược lại return true. Sau đó gắn nó vào hàm callback của mảng điểm số.
<button onclick="myFunction()">Kiểm tra</button>
<p id="demo"></p>
<script>
var score = [7, 8, 9, 10, 3];
function checkPass(score) {
return score < 5;
}
function myFunction() {
if (score.some(checkPass) == true) {
document.getElementById("demo").innerHTML = 'không đủ điểm đỗ!';
} else {
document.getElementById("demo").innerHTML = 'Đủ điểm đỗ!';
}
}
</script>Như vậy là mình đã giới thiệu xong hàm some trong javascript, đây là hàm khá đơn giản nên không có nhiều ví dụ.

Các hàm xử lý chuỗi trong Javascript (cắt / tách / nối chuỗi ..)
Chia lấy phần dư / chia lấy phần nguyên trong javascript
Các cách khai báo biến trong Javascript
Các sự kiện (Event) trong Javascript
Hướng tạo thanh search bar bằng CSS
Hàm array.slice() trong Javascript
Tính tổng hai số bằng Javascript (cộng hai số)
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng