Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Join

20/27
Recursos

Aportes 35

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

El método join() une todos los elementos de un array en una cadena y devuelve esta cadena. Podemos pasarle cualquier elemento como separador que deseemos.

const elements = ['Fire', 'Air', 'Water'];

console.log( elements.join() );
// expected output "Fire,Air,Water"

console.log(elements.join(''));
// expected output "FireAirWater"

console.log(elements.join('-'));
// expected output "Fire-Air-Water"

Y el método split() divide un objeto de tipo String en un array de cadenas mediante la separación de la cadena en sub-cadenas. Acá esta muy bien explicado y con muchos ejemplos: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/String/split

Mi solución para eliminar el ultimo separador en el for

Otro ejemplo muy común del método join en el ejercicio del palíndromo (Básicamente una palabra que se escribe igual de derecha a izquierda y viceversa

const word = 'Arepera'

const palindrome = (word) => {
  // Lo que hace dividir, voltear y luego unirlo con el join...
  return word.split('').reverse().join('').toLocaleLowerCase()

};

console.log(palindrome(word))

Es cool 😄

Para quitar la tilde, por ejemplo, dejo esta función bastante sencilla e interesante que he encontrado en stackoverflow.

const removeAccents = (str) =>
  str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');

const title = removeAccents('Curso de Manipulación de Arrays');

const urlFinal = title.split(' ').join('-').toLocaleLowerCase();
console.log('urlFinal', urlFinal);

Un saludo.

Mi solución para quitar los “–” en el for:

for (let index = 0; index < elements.length; index++) {
	const element = elements[index];
	if(index === (elements.length - 1)){
		rtaFinal = rtaFinal + element
	} else {
	rtaFinal = rtaFinal + element + separator;
	}
}

### Para quitar el - - del final al usar el for
Quitaría los guiónes con un slice:

Mas simple en el for se recorre hasta el penultimo elementos y fiera del for le concateno el ultimo, 😃

Método join: unifica un array por un separador en específico como un espacio, coma o guion.

const elements = ['Este', 'es', 'el', 'titulo', 'de', 'un', 'post']
//Join unira los elementos del array con un espacio ' '
const joinMetod = elements.join(' ');
console.log('Resultado:', joinMetod);

Join: Unir los elementos del array mediante un string que indiquemos.

Split: Transforma un string a un array dada un patro para hacer la separacion de elementos en el array

Si le añadimos el resto de la URL si sería un metodo muy funcional. 😃

const title = 'Curso de manipulación de arrays';
const finalUrl = title.split(' ').join('-').toLowerCase();
console.log(`https://platzi.com/cursos/${finalUrl}`)
//https://platzi.com/cursos/curso-de-manipulación-de-arrays

¿Será que hoy nos mostraron una parte de cómo crean las urls en Platzi?

Esta fue la forma en la que arreglé el problema al usar el ciclo for

(claramente sigue siendo mucho más practico usar join() )

const elements = ['Fire', 'Water', 'Air'];

const join = (arr, separator) => {
    let finalString = "";
    for (let i = 0; i < arr.length; i++) {
        if(!(i == (arr.length-1))){
            finalString += (arr[i] + separator);
        } else{
            finalString += arr[i];
        }
    }
    return finalString;
}

console.log(join(elements," ")); // "Fire Water Air"

Mi solucion

const elements = ['Fire', 'Air', 'Water'];

const separator = '--';
let result0 = '';
for (let index = 0; index < elements.length; index++) {
  const element = elements[index];
  result0 += (index == 0 ? '' : separator) + element;
}
console.log('result0', result0);

const result1 = elements.join(separator);
console.log('result1', result1);

Use esta pagina para complementar JOIN, espero les sirva también, https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/join

Mi respuesta.

🦎 Solución

const elements = ['Fire', 'Air', 'Water', 'Earth'];

let rtaFinal = '';
const separator = '--';
for (let index = 0; index < elements.length; index++) {
    const element = elements[index];
    index === elements.length - 1 ? rtaFinal += element : rtaFinal += element + separator;
}

console.log('for', rtaFinal);

ejercicio con join() y split()


const elements = ["warer","fire","air","land"];

// for()
let rtFinal = "";
const separator = "--"
for(let i = 0; i < elements.length; i++){
  if(i === elements.length - 1){
    rtFinal += elements[i];
  }else{
    rtFinal += elements[i] + separator;
  }
}

const elements = ['Fire', 'Air', 'Water'];


let newString = '';
for (let i = 0; i < elements.length; i++) {
    const acumuladoString = '--' + elements[i];
    newString += acumuladoString;   
}
console.log(newString.slice(2)) 

Buenas noches:

let elementos = [“Aire”, “Agua”, “Viento”, “Tierra”];

let separador = “–”;
let acumulador = “”;

for(let index=0; index<elementos.length; index++){
iter = elementos[index];
acumulador += iter + separador;
if(iter===elementos[elementos.length-2]){
separador=""
}
}

console.log(acumulador);

para poner en practica filter y reduce

Mi solución para hacer que no agregue los separadores al último elemento.

index === elements.length -1 ?
    rta += element :
    rta += element + separator ;

para quitar el – le di esta solución!
Si tienen alguna sugerencia estaré feliz de leerla!

const elements = ["fire", "air", "water"];

let rtaFinal ='';
const separator = '--';
for (let index = 0; index < elements.length; index++) {
    const element = elements[index];
    if(index != (elements.length-1)) {
        rtaFinal = rtaFinal + element + separator;
    } else {
        rtaFinal = rtaFinal + element;
    }
 } 

const rta = elements.join('--')
console.log('for', rtaFinal);
console.log('Join', rta);

Solución para evitar generar el último separador.

const elements = ["Fire", "Air", "Water"];

let rtaFinal = "";
const separator = "--";

for (let index = 0; index < elements.length; index++) {
    if (index !== elements.length - 1) {
        const element = elements[index];
        rtaFinal = rtaFinal + element + separator;
    } else {
        const element = elements[index];
        rtaFinal = rtaFinal + element;
    }
}

console.log("for", rtaFinal);

Les comparto mi solución para el último separador con la estructura repetitiva for. 😄

const elements = ['Fire', 'Air', 'Water'];
const separator = '--';
let rtaFinal = '';
for (let index = 0; index < elements.length; index++) {
    const element = elements[index];
    if (index < elements.length - 1) {
        rtaFinal += element + separator;
    } else {
        rtaFinal += element;
    }
}

Mi solución:

let bween = ''
let elements = ['cat', 'dog', 'chicken']

for (let index = 0; index < elements.length; index++) {
    const element = elements[index];

    if (index == elements.length - 1) {
        bween += elements[index]

    } else {
        
        bween += elements[index] + ', '  
    }
        
}

console.log(bween)

Aqui mi solucion del separador demas en el for:

Mi solución para el ciclo for usando el operador ternario para evitar usar el if - else

Primera letra en mayúscula

 *
 * @param word
 /
firstCapitalLetter(word) {
        if (word == null || word == '') {
            return word;
        }
        return word.charAt(0).toUpperCase() + word.toLowerCase().slice(1);
    }

Quitar el último separador:

const elements = ['Fire', 'Air', 'Water'];
const separator = '--';
let rta = '';

for(let i = 0; i < elements.length; i++) {
    rta += elements[i] + separator;
}

console.log(rta.slice(0, -2));

“Si el índice especificado es negativo, indica un desplazamiento desde el final del array. slice(-2) extrae los dos últimos elementos del array”.
///
Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

for (let index = 0; index < elements.length; index++) {
    const element = elements[index];

    if ( (elements.length - 2) >= index) {
        rtaFinal = rtaFinal + element + separator;
    }else{
        rtaFinal = rtaFinal + element;
    }
   
    
}

Mi solución usando el for 😬

const elements = ["Fire", "Air", "Water"];

let rtaFinal = "";
const separator = "--";
for (let index = 0; index < elements.length; index++) {
  const element = elements[index];
  if (elements.length >= index + 2) {
    rtaFinal = rtaFinal + element + separator;
  } else {
    rtaFinal = rtaFinal + element;
  }
  console.log("i", index);
  console.log(elements.length);
}

console.log("for", rtaFinal);

Mi solucion para el for

const elements = ['Fire', 'Air', 'Water'];

let rtaFinal = '';
const separator = '--'
for (let i = 0; i < elements.length; i++) {
    const element = elements[i];
    if (i === elements.length - 1) {
        rtaFinal = rtaFinal + element;
    } else {
        rtaFinal = rtaFinal + element + separator;
    }
}
console.log('for', rtaFinal);

Así lo había hecho yo:

const elements = ['fire', 'air', 'water', 'earth']

const iterator = ', '
let phrase = ''
for(let i = 0; i < elements.length; i++) {
    const element = elements[i]
    if (element !== 'earth') {
        phrase += element + iterator
    } else {
        phrase += element
    }
}
const elements = ['Fire', 'Air', 'Water'];

const separator = '--';
let result0 = '';
for (let index = 0; index < elements.length; index++) {
  const element = elements[index];
  result0 += (index == 0 ? '' : separator) + element;
}
console.log('result0', result0);

const result1 = elements.join(separator);
console.log('result1', result1);