He intentado muchas veces resolver esta pregunta pero no pude lograr el resultado esperado. Aquí está la pregunta en pocas palabras:
Cuente todos los valores que son divisibles por 11 en una matriz dada
Devuelva 0 si encuentra un número mayor o igual que 111, independientemente de los otros números divisibles de 11.
Por ejemplo:
Entrada:
[11,12,22,33]Salida:
3Entrada:
[11,12,22,33,136]Salida:
0
Pude resolver la primera parte pero fallé con la segunda.
Aquí está mi código.
function div(list) { let counter = 0 list.forEach((value) => { if (value % 11 === 0) { counter++ return counter } if(value>=111){ return 0 } }) return counter } div([11, 22, 33, 44 , 116]) // OUTPUT : 4Utilice un bucle for en su lugar para que pueda volver al interior si se encuentra la condición de interrupción. De lo contrario, regrese solo al final, no dentro del ciclo.
function div(list) { let counter = 0; for (const value of list) { if (value % 11 === 0) { counter++ } if (value >= 111) { return 0 } } return counter } console.log(div([11, 22, 33, 44, 116]));Todas las respuestas anteriores funcionan muy bien, agregando un enfoque diferente, permitiendo que el método incorporado haga el bucle
function div(total, value) { if (value % 11 === 0) { total++; } if(value>=111){ total=0 } return total; } console.log([11,12,22,33].reduce(div,0));Use for...of loop para iterar sobre la lista y regresar dentro del ciclo cuando el valor es >= 111, de lo contrario siga contando los valores divisibles por 11.
function div(list) { let count = 0; for (const value of list) { if(value >= 111){ return 0; } else if (value % 11 === 0) { count++; } } return count; } console.log(div([11, 22, 33, 44 , 116]));