Diego Rodriguez
edgar polo
Diego Rodriguez
Diego Rodriguez
edgar polo
Diego Rodriguez
Lucas Frezzini
Iván Rodríguez
Christian Velázquez
Rafael Martínez Rodríguez
Javi Felices
Luis Manuel Morales López
Luis Abdel Rangel Castro
Alex hernandez mitre
Jorge Cruz Perez
German Cavani
Cristopher Sahagún
Santiago Lopera Naranjo
Andrés Esteban Rodríguez Jiménez
Leobardo Licona Soto
Nicolás Pargade
Cristian Iñiguez
Woldev S.A.S
Jesús Álvarez
Diego Rene Casallas Diaz
Orlando Díaz Torrealva
Gustavo Adolfo Perez Ramos
Miguel Angel Reyes Moreno
Alejandro Villaescusa Henriquez
Mi solución para eliminar el ultimo separador en el for
hola compañero en la parte del const el = item[i] me confundi, podrias explicarla un poco??
Hola, el item[i] hace referencia a la posición i del array de items.
Como es un for, i empieza en 0, entonces es como si const el = items[0], pero para hacerlo dinámico usas el iterador (i) para que en cada ciclo acceda al siguiente elemento
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
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 :D
Gracias por el dato.
Gracias por el aporte
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.
### Para quitar el - - del final al usar el for Quitaría los guiónes con un slice:
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);
que bonito tema.
Mas simple en el for se recorre hasta el penultimo elementos y fiera del for le concateno el ultimo, :)
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 solucionar el doble guíon al final simplemente añadí el primer elemento sin el separador y en el ciclo primero se añade el separador y después el elemento. De esta manera evitamos condicionales dentro del ciclo que a la larga podrían alentar la ejecución de nuestro programa.
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
Crear una URL solo con String.replaceAll( )
Esto se puede hacer mucho más fácil con el nuevo método que nos trajo ECMAScirpt 12 llamado String.replaceAll( ). Que reemplaza todas las coincidencias que le indiquemos de un String con el valor que nosotros deseemos, en este caso reemplazar los espacios en blanco por el signo de menos.
const title = 'Curso de manipulación de Arrays'; console.log(title.replaceAll(' ','-')); // Output = Curso-de-manipulación-de-Arrays
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);
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);
split también recibe expresiones regulares:
const text = '1a2s3d4f5g6'; text.split(/[a-z]/) // [ '1', '2', '3', '4', '5', '6' ]
Alrededor de 10 líneas de código con for para hacer lo que "join" haría en una sola... JS ES6+ es increíble.
Solución de join con un ciclo for:
solo agrego separador si: ’ i ’ no es el ultimo elemento del array (length-1) :v
Mi solución para hacer que no agregue los separadores al último elemento.
index === elements.length -1 ? rta += element : rta += element + separator ;
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
¿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"