我的物件的某些值有時不在域中,因此具有空值。嘗試遍歷該物件時如何從該物件中過濾掉空值?
那是我寫的代碼,但它什么也沒做。
function enLanguage(){
let value1 = Object.values(dicEnglish);
let key1 = Object.keys(dicEnglish);
for (let y=0; y<50; y ){
if ((typeof key1[y] === "object") || (typeof value1[y] ==="object")){
continue;
}else{
let text1 = value1[y];
document.getElementById(key1[y]).textContent = text1;
key1[y].textContent=value1[y]}}}
uj5u.com熱心網友回復:
有幾點需要注意:
- 在 JS 中,物件鍵不能是另一個物件。所以這
typeof key1[y] === "object"是行不通的。 - 您可能需要
Object.entries功能,例如:
for (const [key, value] of Object.entries(dicEnglish)) {
// Do something
}
- 要檢查一個值是否為空值,您可以使用
value == null(注意 2 等號)。如果值為 null 或未定義,則回傳 true。
鑒于此,您可以將函式重寫為:
function enLanguage(){
for (const [key, value] of Object.entries(dicEnglish)) {
// Here you check for null
if (value == null) {
// Do something
} else {
// Do something else
}
}
uj5u.com熱心網友回復:
奇怪的是,nullJavaScript 中的資料型別也是一個物件。但是我們可以通過!運算子將其過濾掉。
例如:
console.log(!null) // true
console.log(!undefined) // true
const x = "Hello World!"
console.log(!x) // false
如果后續值為null, undefinedor 0(falsy values) ,則回傳 true
所以在你的代碼中改變條件:
if (!key1[y] || !value1[y]) continue
這現在將跳過任何falsy值
uj5u.com熱心網友回復:
一種檢查值是否null為 trwar 的緊湊方法是使用嚴格的相等運算子:
(value === null) // true if value is of datatype NULL
(value !== null) // true if value is not of datatype NULL
非嚴格運算子提供類似的測驗,但檢查值是否為nullor undefined:
(value == null) // true if value is of datatype NULL or UNDEFINED
(value != null) // true if value is not of datatype NULL or UNDEFINED.
其中“NULL”表示 的資料型別,null“UNDEFINED”表示 的資料型別undefined。
typeof運算子為函式物件(資料型別為 OBJECT)回傳“function”,為 NULL 型別的原語回傳“object ” null。這可以追溯到 1990 年代 PC 上 JavaScript 的原始設計和實作,并且根深蒂固,無法改變。
TL;DR回傳“ typeof nullobject”并不意味著null是一個物件或具有 OBJECT 資料型別。null是 JavaScript 資料型別 NULL 的單例值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/535357.html
標籤:javascript
上一篇:減去兩個具有重復元素的陣列
下一篇:替換引號內的字串
