Búsqueda de sitios web

La función booleana de Typescript debe devolver un valor


Tengo la siguiente función booleana en Typescript:

checkRiskValues(): boolean {
    this.controlsName.forEach((item) => {
        this.threatForm.get(item)!.valueChanges.subscribe(value => {
            this.valueControlArray.push(this.threatForm.get(item)!.value);

            if (this.valueControlArray.indexOf(true) > -1)
                return true;

            else
                return false
        });
    });
}

El método parece tener un error, la función debe devolver un valor. Lo sé, pero no estoy seguro de cómo implementar esta declaración verdadera/falsa fuera del alcance de foreach.

Si llamo a la sentencia if/else fuera del bucle foreach, el resultado siempre es falso porque

if (this.valueControlArray.indexOf(true) > -1)

está vacío..

EDITAR

He eliminado la función checkRiskValues() y añadido la lógica completa en el método ngOnInit(), y también he agregado la variable valueControl que mantiene un valor verdadero/falso y se pasa a otra función. Gracias a todos... Esta es mi solución:

ngOnInit() {
    this.controlsName.forEach((item) => {
        this.threatForm.get(item)!.valueChanges.subscribe(value => {
            this.valueControlArray.push(this.threatForm.get(item)!.value);

            if (this.valueControlArray.indexOf(true) > -1) {
                this.valueControl = true;

            }
            else {
                this.valueControl = false;
            }
        });
    });
}

Respuesta #1

Esta es mi propuesta:

checkRiskValues(): boolean {
    return setRiskValues().indexOf(true) > -1;
}

setRiskValues(): Array<any> {
    let values = [];
    this.controlsName.forEach((item) => {
        this.threatForm.get(item)!.valueChanges.subscribe(value => {
            values.push(this.threatForm.get(item)!.value);
        });
    });

    return values;
}

De esta manera estás:

  1. Construyendo tu arreglo
  2. Comprobando si existe un valor positivo (si es verdadero y está presente, devolverá el índice)

Artículos relacionados