• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

236
Views
¿Cómo puedo simular el método join () con el método reduce () en Javascript?

Me gustaría hacer una función que haga lo mismo que el método join(), pero no sé qué estoy haciendo mal.

 const join = (arr, separator) => { return arr.reduce((separator, el) => el + separator, separator); }; console.log(join([1, 2, 3], '-'));

devuelve 321- en lugar de 1-2-3

about 3 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Reduzca los trabajos de izquierda a derecha, pero el orden y la denominación de sus parámetros pueden generar confusión.

La devolución de llamada reduce toma dos argumentos, donde el primer argumento es 'valor acumulado', y el segundo es el elemento actual de la matriz. El 'valor acumulado' aquí será su cadena unida, por lo que debe construirla en el orden correcto, comenzando la cadena con el primer elemento de la matriz y no con el separador en sí.

Entonces, para lograr esto, evite usar un valor predeterminado para la llamada de reduce y, en su lugar, devuelva la cadena unida (hasta ahora) más el separador más el elemento actual. Asegúrese de manejar el caso de una matriz vacía también de alguna manera.

 const join = (arr, separator) => { if (!arr.length) return ""; return arr.reduce((joined, el) => joined + separator + el); }; console.log(join([1, 2, 3], '-'));

about 3 years ago · Juan Pablo Isaza Report

0

Aquí hay un ejemplo en el que he agregado algunos registros a la función exampleJoin para que pueda ver lo que está haciendo. Luego hay un método de join final en la parte inferior que es lo que está buscando al final.

 const exampleJoin = (arr, separator) => { return arr.reduce((acc, el ) => { console.log(`string so far: '${acc}', Current element: '${el}'`) return acc + el + separator }, ''); }; const ret = exampleJoin([1, 2, 3], '-') console.log(`ret value: ${ret}`) console.log(`ret value after slice ${ret.slice(0,-1)}`) const join = (arr, separator) => { return arr.reduce((acc, el ) => acc + el + separator, '').slice(0,-1); }; console.log(join([1, 2, 3], '-'));

El acc es el valor acumulado hasta el momento, el es el elemento actual que se está procesando y el sting vacío es el valor inicial del acumulador acc . El segmento es para eliminar el separador final que introducirá este método.

about 3 years ago · Juan Pablo Isaza Report

0

Solo necesitaba un pequeño ajuste:

 const join = (arr, separator) => { return arr.reduce((acc, el) => acc + separator + el); }; console.log(join([1, 2, 3], '-'));

about 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error