Hàm some() trong JavaScript

Hàm some() trong JavaScript
Hàm some() trong JavaScript

Chức năng của Hàm some() trong JavaScript

Hàm some() trong JavaScript dùng để kiểm tra tất cả các phần tử có trong mảng xem có phần tử nào thỏa điều đưa ra hay không, nếu có 1 phần tử hoặc nhiều hơn thỏa điều kiện thì trả về true, nếu không có phần tử nào thỏa điều kiện thì trả về false.

Code Hàm some() trong JavaScript

Hàm some() dùng function trong JavaScript

var mang  = [-2,4,-6,-8];
document.write(mang.some(soDuong));    // Kết quả: true
// Kiểm tra trong mảng có phần tử nào có giá trị dương hay không
function soDuong(phantu) {
  return phantu> 0;
}
<script>
document.write("<b>Kiểm tra trong mảng có phần tử nào có giá trị dương hay không</b><br>");
var mang  = [-2,4,-6,-8];
document.write(mang.some(soDuong)+"<br>");    // Kết quả: true
// Kiểm tra trong mảng có phần tử nào có giá trị dương hay không
function soDuong(phantu) {
  return phantu> 0;
}

document.write("<b>Kiểm tra trong mảng có phần tử nào chia hết cho 2 hay không</b><br>");
var manghai  = [1,4,5,7];
document.write(manghai.some(chiaHet)+"<br>");    // Kết quả: true
// Kiểm tra trong mảng có phần tử nào chia hết cho 2 hay không
function chiaHet(phantu) {
  return phantu % 2 ==0;
}

document.write("<b>Kiểm tra trong mảng có phần tử nào lớn hơn 22 hay không</b><br>");
var mangba  = [17,16,20,21];
document.write(mangba.some(trenMuoiTam))    // Kết quả: false
// Kiểm tra trong mảng có phần tử nào lớn hơn 22 hay không
function trenMuoiTam(phantu) {
  return phantu > 22;
}
</script>

Kết quả:

Kiểm tra trong mảng có phần tử nào có giá trị dương hay không
true
Kiểm tra trong mảng có phần tử nào chia hết cho 2 hay không
true
Kiểm tra trong mảng có phần tử nào lớn hơn 22 hay không
false

Chạy Thử

Hàm some() không dùng function trong JavaScript

var mang  = [-2,4,-6,-8];
// Kiểm tra trong mảng có phần tử nào có giá trị dương hay không
document.write(mang.some(phantu => phantu > 0));    // Kết quả: true
<script>
document.write("<b>Kiểm tra trong mảng có phần tử nào có giá trị dương hay không</b><br>");
var mang  = [-2,4,-6,-8];
// Kiểm tra trong mảng có phần tử nào có giá trị dương hay không
document.write(mang.some(phantu => phantu > 0)+"<br>");    // Kết quả: true

document.write("<b>Kiểm tra trong mảng có phần tử nào chia hết cho 2 hay không</b><br>");
var manghai  = [1,4,5,7];
// Kiểm tra trong mảng có phần tử nào chia hết cho 2 hay không
document.write(manghai.some(phantu => phantu % 2 ==0)+"<br>");    // Kết quả: true

document.write("<b>Kiểm tra trong mảng có phần tử nào lớn hơn 22 hay không</b><br>");
var mangba  = [17,16,20,21];
// Kiểm tra trong mảng có phần tử nào lớn hơn 22 hay không
document.write(mangba.some(phantu => phantu > 22))    // Kết quả: false
</script>

Kết quả:

Kiểm tra trong mảng có phần tử nào có giá trị dương hay không
true
Kiểm tra trong mảng có phần tử nào chia hết cho 2 hay không
true
Kiểm tra trong mảng có phần tử nào lớn hơn 22 hay không
false

Chạy Thử

Ứng dụng hàm some() trong JavaScript vào thực tế

Trong các chương trình JavaScript thực tế, some() phù hợp khi cần xác định một danh sách có ít nhất một phần tử đáp ứng điều kiện hay không. Kết quả trả về là true nếu tìm thấy phần tử phù hợp và false nếu toàn bộ phần tử đều không đạt điều kiện.

Kiểm tra điều kiện trong danh sách dữ liệu

Một trường hợp phổ biến là kiểm tra dữ liệu trước khi thực hiện một thao tác. Chẳng hạn, một hệ thống cần xác định danh sách sản phẩm có sản phẩm hết hàng hay không.

const products = [
    { name: "Laptop", stock: 5 },
    { name: "Chuột", stock: 12 },
    { name: "Bàn phím", stock: 0 }
];

const hasOutOfStock = products.some(product => product.stock === 0);

console.log(hasOutOfStock); // true

Trong ví dụ trên, chỉ cần một sản phẩm có số lượng bằng 0, biến hasOutOfStock đã nhận giá trị true. Cách viết này ngắn gọn hơn việc tự tạo vòng lặp rồi quản lý một biến trạng thái.

Kết hợp some() với các phương thức mảng khác

some() có thể kết hợp với các phương thức mảng khác khi dữ liệu cần được lọc hoặc biến đổi trước khi kiểm tra. Tuy nhiên, nên giữ cho điều kiện kiểm tra rõ ràng để mã nguồn dễ đọc và tránh xử lý dư thừa.

const users = [
    { name: "An", roles: ["user"] },
    { name: "Bình", roles: ["user", "admin"] },
    { name: "Lan", roles: ["editor"] }
];

const hasAdmin = users.some(user => user.roles.includes("admin"));

console.log(hasAdmin); // true

Ở đây, includes() kiểm tra quyền của từng người dùng, còn some() xác định trong toàn bộ danh sách có ít nhất một người sở hữu quyền admin. Mỗi phương thức đảm nhận một nhiệm vụ riêng nên đoạn mã vẫn dễ theo dõi.

Khi nào nên dùng some() thay vì includes()?

includes() thích hợp khi cần kiểm tra một giá trị cụ thể có xuất hiện trực tiếp trong mảng hay không. Trong khi đó, some() phù hợp khi điều kiện kiểm tra phức tạp hơn hoặc cần dựa trên từng thuộc tính của phần tử.

const roles = ["user", "editor", "admin"];

const hasAdmin = roles.includes("admin");

const users = [
    { name: "An", role: "user" },
    { name: "Bình", role: "admin" }
];

const hasAdminUser = users.some(user => user.role === "admin");

Với mảng chứa các giá trị đơn giản như chuỗi hoặc số, includes() thường là lựa chọn trực tiếp và dễ hiểu. Khi mảng chứa object hoặc cần một biểu thức điều kiện riêng, some() sẽ linh hoạt hơn.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm some() trong JavaScript.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm some() trong JavaScript
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !