Đôi khi bạn cần phải kiểm tra một phần tử trong mảng, xem nó có tồn tại trong mảng hay không? Với yêu cầu này, bạn có rất nhiều cách để thực hiện, kể cả chơi bài duyệt mảng “bằng tay”.
Tuy nhiên, khi công cụ đã hỗ trợ sẵn thì không tội gì lại bỏ qua không dùng cả. Bài viết này mình sẽ giới thiệu 3 cách để thực hiện kiểm tra một phần tử trong mảng. Mỗi cách đều có ưu và nhược điểm riêng tùy vào từng yêu cầu cụ thể của dự án.
Chúng ta bắt đầu nhé.
Nội dung chính của bài viết
Các cách kiểm tra một phần tử trong mảng
.includes()
Đối với trường hợp, bạn chỉ cần kiểm tra một giá trị nào đó có tồn tại trong mảng hay không? Câu trả lời chỉ cần: có hoặc không. Phương pháp hiệu quả nhất là sử dụng hàm .includes(). Bạn chỉ cần truyền giá trị cần kiểm tra vào tham số, kết quả true/false sẽ được trả về.
Ví dụ:
let names = ["Jim","Sarah","Tychus"]; if(names.includes("Tychus")) { console.log("Value found"); }
.indexOf()
Ngoài yêu cầu kiểm tra xem giá trị đó có tồn tại hay không? Nếu tồn tại thì cụ thể giá trị đó ở vị trí nào trong mảng. Lúc này hàm .indexOf() là lựa chọn sáng suốt.
let names = ["Jim","Sarah","Tychus"]; if(names.indexOf("Tychus") >= 0) { console.log("Value found"); }
.indexOf()
chỉ trả về vị trí của giá trị đó trong mảng, nếu không tồn tại thì nó trả về -1.Duyệt mảng thủ công
Đây là cách thủ công mà mình đã nhắc đến ở đầu bài viết. Cách làm này không cần phải biết kỹ thuật gì cao siêu cả, cứ nghĩ sao làm vậy.
Mặc dù các viết code thì nó dài vậy thôi, chứ hiệu năng thì cũng tương đương với hai cách ở trên.
function findValue(haystack,needle) { for(const item of haystack) { if(item === needle) { return true; } } return false; } let names = ["A","B","C","D","E"]; console.log(findValue(names,"D"));
Trên đây là một số cách để bạn có thể tìm kiếm một phần tử bất kỳ trong mảng. Mặc dù kỹ thuật này không khó, nhưng mình tin là nhiều bạn chưa biết, hoặc đã biết nhưng đã quên 😤. Coi như đây là phần note lại dùng khi cần thiết.
💦 Đọc thêm về Javascript:
Một tip trick rất hay. Cám ơn bạn