Tengo esta matriz y estos valores:
levels$: Observable<any[]> = [ { name: 'first level primary school' }, { name: 'second level primary school' }, { name: 'first level secondary school' } ] const isPrimarySchool = false const isSecondarySchool = falseY quiero iterar la matriz y encontrar si hay una cadena con la palabra 'primaria' o 'secundaria' (podrían ser ambas), y convertir el valor de isPrimarySchool o isSecondarySchool en verdadero, o ambos si es el caso.
El método que encontré para resolver esto, es este:
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 } }) )¿Hay una mejor manera de resolver las dos partes 'si', usando lodash o javascript normal?
this.levels$.subscribe(levels =>{ this.isPrimarySchool =levels.some(level => level.name.toLowerCase().includes('primary')); this.isSecondarySchool = levels.some(level => level.name.toLowerCase().includes('secondary')); })Podría usar If/Else en lugar de 2 Ifs, y usar un 3rd else.
Recuerde que usar If/elsif/else será menos costoso que agregar 2 If's.
O bien, podría utilizar operadores ternarios, pero lo más probable es que no sea un mejor enfoque.