我有這個陣列和這些值:
levels$: Observable<any[]> = [
{
name: 'first level primary school'
},
{
name: 'second level primary school'
},
{
name: 'first level secondary school'
}
]
const isPrimarySchool = false
const isSecondarySchool = false
我想迭代陣列并查找是否有一個帶有單詞“primary”或“secondary”的字串(可能兩者都有),然后將 isPrimarySchool 或 isSecondarySchool 的值設定為 true,或者兩者兼而有之。
我發現解決此問題的方法是:
this.levels$.subscribe(levels =>
levels.forEach(level => {
if (level.name.toLowerCase().includes('primary') {
this.isPrimarySchool = true
}
if (level.name.toLowerCase().includes('secondary')) {
this.isSecondarySchool = true
}
})
)
有沒有更好的方法來解決兩個“if”部分,使用 lodash 或普通的 javascript?
uj5u.com熱心網友回復:
this.levels$.subscribe(levels =>{
this.isPrimarySchool =levels.some(level => level.name.toLowerCase().includes('primary'));
this.isSecondarySchool = levels.some(level => level.name.toLowerCase().includes('secondary'));
})
uj5u.com熱心網友回復:
您可以使用 If/Else 而不是 2 個 If,并使用第 3 個 else。
請記住,使用 If/elsif/else 將比添加 2 個 If 成本更低。
或者,您可以使用三元運算子,但這很可能不是更好的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/416723.html
標籤:
