在 JavaScript 中,有沒有辦法檢查物件或陣列中是否存在空值?
空值在 JavaScript 中可能難以處理,但它們是語言的重要組成部分。在本文中,我們將討論在 JavaScript 中檢查物件或陣列中是否存在空值的各種方法。
空值表示不存在物件值。它被有意設定以顯示變數已宣告但尚未賦值。
原始值為 `undefined`,表示意外缺少任何物件值,這與 `null` 相似,但與前者形成對比。這是因為已宣告但尚未賦值的變數是 `undefined` 而不是 `null`。在 JavaScript 中,有很多方法可以檢查值是否為空。讓我們逐一討論幾種方法。
在 JavaScript 中使用 Object.keys()
Object.keys() 是 JavaScript 中的一種方法,它返回物件的鍵的陣列。它接受一個引數,即要返回其鍵的物件。陣列中鍵的順序基於它們新增到物件的方式;較新的屬性將出現在較舊屬性之後。Object.keys() 也可用於陣列,因為陣列也是物件,並且陣列中的每個元素都有其自己的鍵(索引)。
語法
以下是 Object.keys() 方法的語法。
Object.keys(object)
示例
在下面的示例中,我們使用 Object.keys() 執行指令碼。
<!DOCTYPE html> <html> <body> <script> var data = [{ name: "AVATAR", Car: "AUDI", Bike: null, Location: null }, { name: "RAM", Car: "No", Bike: 'BULLET', Location: 'LA' }, ]; data.forEach(function(v, i) { if ( Object.keys(v).some(function(k) { return v[k] == null; }) ) document.write('Contains null value at: ', i + "<br>"); else document.write(' data right', i); }); </script> </body> </html>
當指令碼執行時,事件被觸發,允許我們檢查指令碼中使用的整個資料集以確定是否存在空值,它將根據我們的資料在網頁上顯示第一組資料中存在的空值和第二組資料的實際資料。
使用 JavaScript some() 方法
some() 方法接受一個函式作為引數,並測試陣列中至少一個元素是否透過給定函式實現的測試。
當某個元素的提供函式返回 true 時,它返回 true;否則返回 false。
語法
以下是 some() 方法的語法
array.some(function(value, index, arr), this)
示例
考慮下面的示例,我們使用 some() 方法來檢查是否存在空值。
<!DOCTYPE html> <html> <body> <script> var arr = [ { x : "1", y : "2", z : "3" }, { x : "ram", y : "abc", z : "var" }, { x : "abc", y : "def", z : null } ]; function hasNull(element, index, array) { return element.x===null || element.y===null || element.z===null; } document.write( arr.some(hasNull) ); </script> </body> </html>
執行上述指令碼後,當事件被觸發並檢查給定陣列是否包含空值時,瀏覽器將在網頁上顯示值“true”,並且由於條件匹配且給定陣列包含空值,因此它將顯示“true”。
使用 JavaScript include() 方法
JavaScript include() 方法用於將外部指令碼或檔案載入到當前文件中。此方法允許您新增來自現有 HTML 頁面外部的指令碼、庫和其他檔案。它可以與內聯指令碼和外部指令碼一起使用。include() 方法將在繼續執行程式的其餘部分之前執行指定檔案中的程式碼。
語法
以下是 include() 的語法
string.includes(searchvalue, start)
示例
讓我們看看下面的示例,我們在其中使用 include() 方法
<!DOCTYPE html> <html> <body> <script> var nameArray = ["Jack", "rose", "Sam"]; if (nameArray.includes(null) == true) { document.write("array contains null value"); } else { document.write("array does not contains null value", "<br>"); } var objectData = { name: null }; if (Object.values(objectData).includes(null)) { document.write("object contains null value", "<br>"); } else { document.write("object does not contains null value", "<br>"); } </script> </body> </html>
當指令碼執行時,事件被觸發,它檢查指令碼中輸入的資料是否包含空值,並在網頁上顯示該值。在上述情況下,它顯示陣列不包含空值,而物件包含空值。