Tengo un ciclo forEach donde tiene una función de búsqueda dentro. Me gustaría obtener un valor booleano después de que forEach se ejecute solo si todas las funciones de búsqueda que se repiten devuelven verdadero. ¿Cómo se puede hacer esto?
const items = ['apple','orange','banana']; items.forEach((item)=>{ const value = !!items?.find((element)=>element==='apple') console.log(value) // true, false, false -> return of forEach should be false }) const items = ['apple','apple','apple']; items.forEach((item)=>{ const value = !!items?.find((element)=>element==='apple') console.log(value) // true, true, true -> return of forEach should be true })Algo en la línea de
isAllTruthy = items.forEach((item)=>{ return !!items?.find((element)=>element==='apple') })Esto da el valor de retorno indefinido, ¿cómo abordo esto?
Debe tomar Array#map para obtener el resultado de las comprobaciones. Esto permite devolver un valor para cada elemento de la matriz.
const items = ['apple', 'orange', 'banana'], result = items.map(s => s === 'apple'); console.log(result); Si desea obtener un solo valor booleano, puede usar Array#every
console.log(['apple', 'orange', 'banana'].every(s => s === 'apple')); console.log(['apple', 'apple', 'apple'].every(s => s === 'apple'));Usa .every así:
const items = ["apple", "orange", "banana"]; let value = items.every((item) => item === "apple"); console.log(value); // false const items2 = ["apple", "apple", "apple"]; value = items2.every((item) => item === "apple"); console.log(value); // truePuede usar solo el método de matriz de mapas para obtener el valor booleano de retorno
const items = ['apple','orange','banana']; console.log(items.map((e)=> e === 'apple'))