Hôm nay, chúng ta hãy xem xét một phương thức mảng JavaScript khác, đó là phương thức some()
. Chúng ta sẽ học cách xác định xem một phần tử có tồn tại trong một mảng hay không bằng cách sử dụng phương thức some()
.
Như thường lệ, các mã ví dụ trong bài viết này được viết bằng ngôn ngữ JavaScript. Do đó, kiến thức về ngôn ngữ là cần thiết để hiểu đúng. Không có gì khó chịu, hãy đi sâu vào.
some()
của JavaScript là gì ?Phương thức some() trong Javascript xác định xem ít nhất một thành viên mảng có thỏa mãn bài kiểm tra được xác định bởi hàm đã cho hay không. Nó trả về true nếu nó tìm thấy một phần tử trong mảng mà hàm đã chỉ định trả về true; ngược lại, nó trả về false. Nó không làm thay đổi mảng.
Hãy xem lại đoạn mã này để hiểu rõ hơn về phương pháp này:
const basket = ["oranges", "apples", "pineapple", "yam"] basket.some(bas => bas.length === 3) // true basket.some(bas => bas.length <= 1) // false
Chúng tôi chỉ đơn giản là thử kiểm tra xem độ dài của một trong các loại trái cây trong mảng giỏ có chính xác bằng 3 hay không. Ít nhất trong mảng, một thành viên tuân thủ kiểm tra này; đó là "yam" trong trường hợp này. Kết quả mong đợi của chúng tôi sẽ là sự thật. Điều kiện thứ hai kiểm tra xem có bất kỳ độ dài quả nào nhỏ hơn hoặc bằng 1 hay không. Điều này sẽ dẫn đến kết quả sai vì rõ ràng là chúng ta không có bất kỳ độ dài nào nhỏ hơn hoặc bằng 1.
some()
của JavaScript ?Phương thức some() của javascript rất dễ sử dụng; Hãy để tôi chỉ cho bạn cách làm.
Hãy bắt đầu bằng cách hiểu cú pháp được viết như thế nào.
Cú pháp được viết đơn giản bằng cách bao quanh từ 'some' với dấu ngoặc đơn '()' như sau:
some()
Bởi vì đây là một phương thức, nên nó chấp nhận các đối số, giúp bạn linh hoạt hơn những gì bạn có thể làm với một mảng bằng cách sử dụng phương thức some().
Chúng như sau:
Tham số phần tử cho biết phần tử hiện tại đang được xử lý trong mảng.
Chỉ mục chỉ là chỉ mục của phần tử hiện tại đã được xử lý trong mảng.
Đây là mảng mà chúng ta gọi phương thức some().
Bây giờ chúng ta đã hiểu cú pháp, hãy xem phương thức hoàn chỉnh trông như thế nào.
some((element, index, array) => { /*... */ })
Như bạn có thể thấy, chúng tôi có ba tham số được bao gồm trong đoạn mã ở trên, cung cấp một ví dụ rõ ràng về cách xây dựng phương pháp này.
Tùy thuộc vào nhu cầu của bạn, bạn có thể chọn bỏ qua một số đặc điểm. Tương tự như chỉ mục, bạn có thể cung cấp nó như một trong các tùy chọn nếu bạn muốn biết thêm chi tiết về mảng. Tất cả các tiêu chí không phải luôn luôn được bao gồm.
Ba cách phổ biến để viết Javascript như sau:
Hàm mũi tên đã được giới thiệu trong ES6, cố gắng giải quyết một số vấn đề mà hàm truyền thống gặp phải. Hàm này cũng có thể được sử dụng với các phương thức some():
some((element, index, array) => { /*... */ })
Chúng ta có khả năng viết hàm gọi lại trong phương thức some() mà không cần lưu trữ nó trong một biến.
const basket = ["oranges","apples","pineapple","yam"] const result = basket.some(function (element, index, array)) { return element.length >= 7 }) console.log(result)
Phong cách này có thể được viết bằng cách khai báo hàm đầu tiên và lưu trữ nó trong một biến, sau đó chuyển nó dưới dạng gọi lại phương thức some(), như sau:
const basket = ["oranges","apples","pineapple","yam"] function callBack(bas){ return bas.length === 7 } const result = basket.some(callBack) console.log(result)
Khi xử lý các lần gửi biểu mẫu, hàm some()
có thể được sử dụng để xác định trường nhập liệu nào đáp ứng các yêu cầu cụ thể. Ví dụ: bạn có thể xác minh rằng mọi đầu vào đều chứa địa chỉ email hợp lệ hoặc ít nhất một trường bắt buộc đã được điền.
Tôi sẽ cho bạn một ví dụ về cách nó có thể trông như thế nào.
const formInputs = document.querySelectorAll('input'); const isAnyInputEmpty = Array.from(formInputs).some(input => input.value === ''); if (isAnyInputEmpty) { console.log('Please fill in all required fields.'); } else { console.log('Form submitted successfully.'); }
Trong mẫu mã, chúng tôi đảm bảo người dùng không gửi trường trống; chúng tôi muốn thông báo cho họ nếu họ để trống ngay lập tức. Và nếu họ đáp ứng các yêu cầu bằng cách gửi ít nhất dữ liệu có liên quan, thì chúng tôi muốn xử lý việc gửi đó.
Nếu chúng tôi có một giỏ sản phẩm hoặc cấu trúc dữ liệu trong ứng dụng web của mình, chúng tôi có thể sử dụng some() để xác định xem một sản phẩm cụ thể có tồn tại hay không. Điều này đặc biệt hữu ích khi chúng tôi muốn thực hiện một số hành động nhất định dựa trên việc một mục có hiện diện hay không. Chúng ta hãy xem mẫu mã này giải thích nó tốt hơn.
const shoppingCart = ['shoes', 'T-shirt', 'trouser']; const itemPresent = shoppingCart.some(item => item === 'trouser'); if (itemPresent){ console.log('Product exists in the cart.') } else { console.log('Product does not exist in the cart.') }
Chúng tôi kiểm tra xem liệu chúng tôi có 'quần' trong giỏ hàng hay không. Chúng tôi đăng nhập vào bảng điều khiển khi xác nhận nó có trong giỏ hàng.
Khi triển khai các hệ thống xác thực và ủy quyền người dùng, chúng ta có thể sử dụng some() để kiểm tra xem người dùng có ít nhất một quyền được yêu cầu hay thuộc bất kỳ vai trò nào được chỉ định hay không. Điều này cho phép chúng tôi kiểm soát quyền truy cập vào các chức năng hoặc tài nguyên nhất định.
const userRoles = ['admin', 'editor']; const permissions = ['admin', 'moderator']; const hasRequiredRole = permissions.some(role => userRoles.includes(role)); if (hasRequiredRole){ console.log('Access granted.') } else { console.log('Access denied.'); }
Trong mẫu mã, chúng tôi đã sử dụng kết hợp các phương thức bao gồm () và một số () để cấp quyền dựa trên vai trò của người dùng. Nếu vai trò của người dùng phù hợp với quyền được yêu cầu, chúng tôi sẽ cấp cho họ quyền truy cập; nếu không, chúng tôi từ chối họ truy cập.
Lưu ý cuối cùng, phương thức some() trong javascript được sử dụng để kiểm tra các điều kiện. Nó không thay đổi mảng ban đầu. Chúng chấp nhận ba tham số: phần tử, Chỉ mục và mảng', trong đó tham số phần tử cho biết phần tử hiện tại đang được xử lý trong mảng và tham số chỉ mục là “chỉ mục” của phần tử hiện tại đã được xử lý trong mảng.
Cảm ơn bạn đã đọc bài đánh giá của tôi về phương thức mảng của JavaScript, cụ thể là phương thức some(). Bạn nghĩ gì về lời giải thích? bạn sẽ được cho nó một thử?
Hãy cho tôi biết suy nghĩ của bạn trong các bình luận bên dưới và vui lòng theo dõi tôi trên HackerNoon cho các bài viết trong tương lai.