試圖回圈一個物件。事情是一些定義為null的欄位的物件,因為我想繞過firebase不接受未定義的值。這是物件:
在模型.ts
export interface Page {
id: string;
titre: string;
pres: string;
st1: null;
st2: null;
st3: null;
st4: null;
st5: null;
pa1: string;
pa2: null;
pa3: null;
pa4: null;
pa5: null;
image1: null;
image2: null;
image3: null;
lien: null;
nomlien: null;
}
In component.ts :
page: Page = {
id: '',
titre: '',
pres: '',
st1: null,
pa1: '',
st2: null,
st3: null,
st4: null,
st5: null,
pa2: null,
pa3: null,
pa4: null,
pa5: null,
image1: null,
image2: null,
image3: null,
lien: null,
nomlien: null,
};
我可以使這個作業:
if (page.st1 === undefined || page.st1 === '') {
page.st1 = null;
}
但我想在這個物件上回圈執行此操作,所以我不需要 15 個 If,我的物件仍然可以在 Firebase 中注冊。
我已經嘗試過 foreach、for in、for of、for i 。沒有任何效果。我的 IDE 告訴我頁面中沒有這樣的屬性。
uj5u.com熱心網友回復:
我們可以迭代Object.entries(page),如果字串''長度的值為零或者為零undefined,我們將鍵值更改為null。
setNulls(page: any) {
for (let [key, value] of Object.entries(page)) {
if (value === undefined || String(value).length === 0) {
page[key] = null;
}
}
}
這是一個作業示例:https ://stackblitz.com/edit/how-to-loop-object-keys-and-display-in-table-usin-l7pq7k?file=src/app/app.component.ts
uj5u.com熱心網友回復:
你可以這樣做: -
if (page) {
Object.keys(page).forEach((key) => {
if (page[key] === undefined || page[key] === '') {
page[key] = null;
}
})
}
uj5u.com熱心網友回復:
你可以像這樣回圈物件
for (const key of Object.keys(this.page)) {
if (this.page[key] === undefined || this.page[key] === ''){
(<any>this.page)[key] = null;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/424458.html
下一篇:如何匹配值?
