基本上有一種簡單的方法可以撰寫“如果這些屬性中的任何一個為空,則將整個物件視為空/不回傳。” 對于我將大量屬性映射到新物件的情況。
const object = {
one: {a: 'a',
b: 'b',
c: {
c1: 'c1',
c2: null}
},
}
// if properties of object !== null
return {
myObject: {
myA: object.a,
myC1: object.c.c1
myC2: object.c.c2
...
}
}
//else return something else
我寧愿不必寫一個巨大的條件來解決這個問題。
uj5u.com熱心網友回復:
使用遞回,您可以快速獲得一個布林值,指示物件中是否存在空值。
每次找到空值屬性時,matchNULLValue 都會回傳 true,這也適用于嵌套物件。
const object = {
one: {
a: 'a',
b: 'b',
c: {
c1: 'c1',
c2: null
}
},
}
function matchNULLValue(object) {
for (const value of Object.values(object)) {
if (value === null || (typeof value === "object" && matchNULLValue(value))) {
return true;
}
}
return false;
}
if (matchNULLValue(object)) {
console.log("There is some property on this object with null value.");
} else {
console.log("There is no property on this object with a null value.");
}
uj5u.com熱心網友回復:
function containsNull(obj) {
for (let key in obj) {
if (obj[key] === null) {
return true;
} else if (typeof obj[key] === "object") {
return checkNull(obj[key]);
}
}
return false;
}
您可以使用遞回函式來執行任務。如果任何物件包含 null,則此函式回傳 true。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/418927.html
標籤:
