Để kiểm tra xem có giá trị null trong một đối tượng hoặc mảng hay không, hãy sử dụng khái niệm bao gồm []
Thí dụ
Sau đây là mã -
var nameArray1 = ["John", "David", "Mike", "Sam", null]; if [nameArray1.includes[null] == true] { console.log["array1 contains null value"]; } else { console.log["array1 does not contains null value"]; } var nameArray2 = ["Adam", "Bob", "Robert"]; if [nameArray2.includes[null] == true] { console.log["array2 contains null value"]; } else { console.log["array2 does not contains null value"]; } var objectData = { name: null }; if [Object.values[objectData].includes[null]] { console.log["object contains null value"]; } else { console.log["object does not contains null value"]; }
Để chạy chương trình trên, bạn cần sử dụng lệnh dưới đây -
node fileName.js.
Ở đây, tên tệp của tôi là demo314. js
đầu ra
Điều này sẽ tạo ra đầu ra sau -
PS C:\Users\Amit\javascript-code> node demo314.js array1 contains null value array2 does not contains null value object contains null value
Chúng tôi tiếp tục với loạt bài hướng dẫn của Flexiple để giải thích mã và khái niệm đằng sau các trường hợp sử dụng phổ biến. Trong bài viết này, chúng tôi sẽ giải quyết cho một trường hợp cụ thể. Để kiểm tra xem một mảng có trống không bằng Javascript
Chúng ta có thể sử dụng cái này ở đâu?
Bạn có thể thấy điều này hữu ích khi bạn muốn thực thi một tập lệnh cụ thể nếu mảng trống - như bật hoặc tắt các nút dựa trên việc có bất kỳ đầu vào nào trong trường bắt buộc, v.v.
Nếu bạn chưa quen với lập trình hoặc chưa quen với javascript, chúng tôi khuyên bạn nên đọc qua toàn bộ bài viết, vì mỗi phần của bài viết sẽ hữu ích
Tuy nhiên, nếu bạn chỉ đang tìm kiếm mã, bạn có thể nhanh chóng kiểm tra
Mục lục
- Triển khai mã để kiểm tra xem một mảng có trống hay không sử dụng Javascript
- Hỗ trợ trình duyệt
Mã để kiểm tra xem một mảng có trống không bằng cách sử dụng javascript
Chúng tôi sẽ nhanh chóng xem qua mã và phần trình diễn của nó để kiểm tra xem một mảng có trống hay không và cũng xem lý do tại sao các hàm cụ thể này được sử dụng
//To check if an array is empty using javascript
function arrayIsEmpty[array] {
//If it's not an array, return FALSE.
if [!Array.isArray[array]] {
return FALSE;
}
//If it is an array, check its length property
if [array.length == 0] {
//Return TRUE if the array is empty
return true;
}
//Otherwise, return FALSE.
return false;
}
Giải thích mã
Hãy phân tích mã này từng bước
- Đầu tiên chúng ta kiểm tra xem một biến có phải là một mảng hay không bằng cách sử dụng Array. phương thức isArray[]
- Nếu biến truyền vào là một mảng thì điều kiện. Mảng. isArray[] sẽ là Sai và do đó biến sẽ chuyển sang điều kiện khác
- Nếu biến được truyền là bất kỳ thứ gì ngoại trừ một mảng chẳng hạn như không xác định hoặc một loại biến khác như chuỗi hoặc đối tượng, thì hàm sẽ trả về Sai
- Sau khi đã xác nhận biến là mảng, bây giờ chúng ta có thể kiểm tra độ dài của mảng bằng Array. thuộc tính chiều dài
- Nếu độ dài của đối tượng bằng 0 thì mảng được coi là rỗng và hàm sẽ trả về TRUE
- Khác mảng không trống và hàm sẽ trả về Sai
Trình diễn kiểm tra xem mảng có trống không bằng Javascript
var fruitArr = new Array['Apple', 'Mango', 'Grapes'];
//An example of a JavaScript array that is empty.
var arrTwo = new Array[];
console.log[arrayIsEmpty[fruitArr]]; //returns FALSE
console.log[arrayIsEmpty[arrTwo]]; //returns TRUE
đầu ra
FALSE
TRUE
Giải thích đầu ra
- Ở đây chúng ta có thể thấy rằng fruitArr là một mảng và do đó chuyển sang điều kiện thứ hai để kiểm tra xem độ dài của mảng có trống không
- Vì mảng có 3 phần tử nên nó không rỗng và do đó hàm trả về Sai
- Trong trường hợp thứ hai, mảngHai, nó lại là một mảng và do đó chuyển sang điều kiện thứ hai
- Ở đây, vì mảng trống nên hàm trả về True
Tại sao nên sử dụng Mảng. phương thức isArray[]?
Mảng. Phương thức isArray[] là một phương thức chắc chắn để kiểm tra xem một biến có phải là một mảng hay không và nó tự động loại bỏ các trường hợp null và không xác định mà không cần viết thêm tập lệnh để kiểm tra nó
Mảng. phương thức isArray[] trả về true cho các trường hợp sau
Array.isArray[[]];
Array.isArray[[3]];
Array.isArray[new Array[]];
Array.isArray[new Array['apple', 'mango', 'grapes']];
Array.isArray[new Array[5]];
Array.isArray[Array.prototype];
Ghi chú. Mảng. bản thân nguyên mẫu là một mảng nên hàm Array. isArray[] trả về TRUE
Mảng. isArray[] trả về Sai cho các trường hợp sau
Array.isArray[];
Array.isArray[{}];
Array.isArray[null];
Array.isArray[undefined];
Array.isArray[21];
Array.isArray['Random String'];
Array.isArray[true];
Array.isArray[false];
Array.isArray[new Uint8Array[32]];
Array.isArray[{
__proto__: Array.prototype
}];
Chúng ta có thể sử dụng typeof thay vì Array không. làArray?
Câu trả lời là KHÔNG, bởi vì một mảng trong JavaScript là một thể hiện của đối tượng Array và typeof sẽ trả về đối tượng kiểu cho nó
Để minh họa điều này, hãy xem xét ví dụ
Chúng ta có thể sử dụng instanceof thay vì Array không. làArray?
Trong khi instanceof có thể được sử dụng cho hầu hết các trường hợp tại chỗ Array. isArray , Mảng. isArray được ưu tiên hơn instanceof vì nó hoạt động chính xác qua nhiều ngữ cảnh [chẳng hạn như khung hoặc cửa sổ] trong khi instanceof thì không
Lý do cho điều này là trong javascript, mỗi cửa sổ hoặc khung có môi trường thực thi riêng, do đó có phạm vi khác nhau. Điều này có nghĩa là chúng có các đối tượng cài sẵn khác nhau [i. e. các đối tượng toàn cầu khác nhau, các hàm tạo khác nhau, v.v. ]. Điều này có thể dẫn đến kết quả không mong muốn khi sử dụng instanceof, ví dụ: đối với các tập lệnh truyền đối tượng từ ngữ cảnh này sang ngữ cảnh khác thông qua các hàm
Xem xét các trường hợp như vậy, tốt nhất là chỉ cần sử dụng Array. isArray, đặc biệt là khi tạo khung, thư viện hoặc plugin, trong đó môi trường mà nó sẽ được sử dụng không được biết trước
Sử dụng thuộc tính chiều dài
Khi chúng tôi chắc chắn rằng chúng tôi chỉ xử lý một mảng, chúng tôi có thể dễ dàng kiểm tra xem mảng đó có trống hay không bằng cách sử dụng thuộc tính độ dài. Nếu độ dài của mảng là 0 thì mảng trống nếu không thì mảng không trống
Một câu hỏi rõ ràng mà chúng ta có thể có là tại sao không chỉ sử dụng thuộc tính độ dài ngay từ đầu?
Đúng, nhưng thuộc tính độ dài có thể trả về biến đó trống ngay cả đối với các biến không phải mảng, vì vậy chúng tôi cần đảm bảo rằng chúng tôi đang xử lý một mảng trước khi sử dụng thuộc tính độ dài
Hỗ trợ trình duyệt
Mảng. phương thức isArray có vì nó là một phần của đặc tả ES5. Tuy nhiên, nếu các trình duyệt bạn đang nhắm mục tiêu thiếu hỗ trợ, bạn có thể sử dụng một polyfill cho trình duyệt được cung cấp bên dưới
Polyfill hoạt động tốt với các trình duyệt tương thích với thông số kỹ thuật ES3 và hoạt động trên các khung