No entiendo por qué esto no funciona.
function every(arr, callback) { for (let i = 0; i < arr.length; i++) { if (callback(arr[i]) === true) { return true }else return false } }¿Puede alguien ayudarme a entender cómo funciona el método every()? Necesito escribir el código fuente para el método en relación con las siguientes 2 preguntas.
describe('every', function () { it('returns true when the callback returns true for all elements', function () { const original = ['ace', 'cat', 'dog', 'pit'] const result = every(original, (el) => el.length === 3) expect(result).to.be.true }) it("returns false when the callback doesn't return true for all elements", function () { const original = ['ace', 'cat', 'parrot', 'dog'] const result = every(original, (el) => el.length === 3) expect(result).to.be.false }) })Solo está probando el primer elemento de la matriz, porque devuelve verdadero o falso dentro del bucle.
Debe devolver false inmediatamente si la prueba falla. De lo contrario, debe seguir haciendo bucles. Si pasa por todo el ciclo, entonces puede devolver true .
function every(arr, callback) { for (let i = 0; i < arr.length; i++) { if (!callback(arr[i])) { return false; } } return true; }