Bruno R
La mayoria de las cosas en javascript son objetos. Cuando se crea una variable usando ⇒
let string1 = 'This is my string';
esta variable se convierte en una instancia de objeto de cadena, por lo que tiene disponible una gran cantidad de propiedades y metodos que se pueden utilizar para manipular esta informacion. Metodos, Propiedades, y porque no el constructor.
Esto se logra usando la propiedad length ⇒
let browserType = 'mozilla'; browserType.length; //output 7 (tipo de dato number)
Tambien se puede devolver cualquier caracter de una cadena mediante el uso de notacion de "corchetes cuadrados" [] al final del string (o contenedor de este tipo de dato). Dentro de los corchetes se incluye el numero del caracter en la cadena. Ej ⇒
browserType[0]; //esto me devuelve el primer caracter browserType[browserType.length-1]; //esto me devuelve el ultimo caracter
Para lograr buscar un substring dentro de un string se utiliza el metodo .indexOf('x'), al que se le agrega un unico parametro y es el nombre de la subcadena que deseamos buscar.
Como resultado recibimos el numero donde se encuentra el primer caracter del substring, en el caso de que no exista, nos retorna -1.
Los metodos de cadena toUpperCase() y toLowerCase() toman un string y lo convierten a mayuscula o minuscula respectivamente. Sumamente util para normalizar los datos antes de guardarlos en una base de datos. Ej ⇒
let radData = 'My NaMe Is MuD'; radData.toLowerCase(); //output "my name is mud" radData.toUpperCase(); //output "MY NAME IS MUD"
Tambien se pueden remplazar un substring por otro en el string principal, mediante el metodo replace(). Segun parece es un comando basico pero se pueden hacer cosas muy avanzadas con el que voy a ir actualizando con el tiempo.
Para utilizar este metodo se necesitan dos parametros, el primero es el nombre del substring que se cambiara por el texto del segundo parametro. Ej ⇒
let browserType = 'mozilla'; browserType.replace('moz','van'); //output 'vanilla'
const list = document.querySelector('.output ul');//selecciono el elemento HTML list.innerHTML = '';//no se para que puso un texto vacio el elemento let greetings = ['Happy Birthday!', //esto es el array con todos los strings 'Merry Christmas my love', 'A happy Christmas to all the family', 'You\'re all I want for Christmas', 'Get well soon']; /*el for de abajo esta haciendo un bucle que se repetira hasta llega al numero de valores dentro del array y para cada valor se ejecuta las instrucciones del bloque del bucle*/ for (let i = 0; i < greetings.length; i++) { let input = greetings[i]; //esto es una variable que toma el arreglo de arriba y muestra cada valor uno de sus valores (al cambiar su numero "i") let searchString = ""; //esto es algo que invente para colocar la palabra que quiera buscar /*en la declaracion del if de abajo tenemos que el metodo indexOf esta buscando un substring en el parrafo i (cualquiera de los de arriba), si este substring no esta, el valor por defecto del metodo sera -1 haciendo que la comparacion !== (estrictamente diferente) sea falso, porque son iguales, el codigo de la condicional no se cumple. Por otro lado si el substring esta en el parrafo el valor no sera -1 haciendo que la comparacion sea true ejecutando el codigo */ if (greetings[i].indexOf(searchString) !== -1 ) { let listItem = document.createElement('li'); //crea una variable creadora de elementos (en este caso 'li') listItem.textContent = input; //al li creado se le agrega por medio del textContent el parrafo del array list.appendChild(listItem); //y aca al elemento seleccionado le anidamos el nuevo elemento li con el parrafo correspondiente. } }
const list = document.querySelector('.output ul'); list.innerHTML = ''; let cities = ['lonDon', 'ManCHESTer', 'BiRmiNGHAM', 'liVERpoOL']; for (let i = 0; i < cities.length; i++) { //nada lo de siempre una variable en el for que sirva para recorrer el array let input = cities[i]; //variable que contiene el arreglo let inputLow = input.toLowerCase(); //pongo en minuscula todos los strings del array let sliceInputLow = inputLow.slice(0,1); //variable con el recorte del string anterior (primera letra) let changeLetter = inputLow.replace(sliceInputLow,sliceInputLow.toUpperCase()); //variable q contiene el remplazo en el string de nombre en minuscula de la primera //letra por la misma letra cambiada a mayuscula. let listItem = document.createElement('li'); //variable que contiene la creacion de un elemento lista listItem.textContent = changeLetter; //le agregamos al elemento creado el string list.appendChild(listItem); //se crea un nodo en el elemento list donde ira el elemento listItem }
const list = document.querySelector('.output ul'); list.innerHTML = ''; let stations = ['MAN675847583748sjt567654;Manchester Piccadilly', 'GNF576746573fhdg4737dh4;Greenfield', 'LIV5hg65hd737456236dch46dg4;Liverpool Lime Street', 'SYB4f65hf75f736463;Stalybridge', 'HUD5767ghtyfyr4536dh45dg45dg3;Huddersfield']; for (let i = 0; i < stations.length; i++) { //para esta variable de ciclo for hitera hasta un maximo de numero de arrays let input = stations[i]; //esta es una variable que contiene cada uno de los strings let inputCode = input.slice(0,3); //seleccion de string que quiero cortar let searchInputName = input.search(";"); //buscando en que parte esta este sub string en el string que corresponda let inputName = input.slice(searchInputName+1); /*corte del string proncipal en el numero donde se encuenta el simbolo ";" (obtenido en la variable anterior) mas 1 para recortar exactamente en el nombre de estacion*/ let newInput = `${inputCode}: ${inputName}.`; //concatenacion let result = newInput ; //respuesta let listItem = document.createElement('li'); //creacion de un elemento li listItem.textContent = result; //agregar a este elemento el string list.appendChild(listItem); //creacion de nodo en el elemento list para agregar al recien creado li }
Entender diferencia entre indexOf() y search(), dos metodos para buscar el numero de caracter de un substring en un string. ⇒ Untitled