Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

159
Visualizações
construir y probar una función de reducción personalizada

Como dice el título, tengo que construir una función de reducción a la que se le pasa una matriz, una devolución de llamada y un acumulador. Los requisitos para la función reduce son:

  1. debe configurar el acumulador para que sea el primer elemento de la matriz si no se proporciona ningún acumulador
  2. debe pasar el segundo elemento de la matriz al iterador primero si no se proporciona un acumulador
  3. debe pasar cada elemento de la matriz a través del iterador si se pasa un acumulador en
  4. debe aceptar valores falsos como un acumulador válido
  5. debe pasar elementos de izquierda a derecha a través del iterador

Estoy luchando con el punto #5. No tengo idea de cómo abordar la lógica para ello. Esto es lo que tengo hasta ahora:

 function reduce(collection, callback, accumulator) { if (Array.isArray(collection)) { if (accumulator === undefined) { accumulator = collection[0]; const [el1, ...rest] = collection; collection = [...rest]; } let result = accumulator; for (let element of collection) { result = callback(result, element); } return result; } else { for (const [key, value] of Object.entries(collection)) { callback(); } } }

No he incluido el código para el n.° 5, así que cuando ejecuto mi función de reducción en las pruebas que verifican si se cumplieron todos los requisitos, obtengo lo siguiente:

  • debe pasar elementos de izquierda a derecha a través del iterador : esperado [0, 1, 2, 3, 1, 2, 3, 4] para igualar [1, 2, 3, 4]

Y esta es la prueba específica para el #5 que debería pasar, pero no lo hace:

 it('should pass in items from left to right through iterator', () => { const orderedResult = []; _.reduce([1, 2, 3, 4], (memo, item) => { orderedResult.push(item); return memo; }, 10); expect(orderedResult).toEqual([1, 2, 3, 4]); });

No entiendo lo que está probando. ¿Está probando si el acumulador es una matriz vacía o un objeto vacío? Completamente confundido. Por favor, cualquier pista (o recurso) que me pueda dar para ayudarme con esto, sin divulgar la respuesta, sería muy apreciada.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda