String y Arrays – Marco teórico Copy

Primero recordemos: ¿Qué es una String? 

Una String es una cadena de texto o un conjunto de caracteres. Y existen distintos  métodos que nos proporciona JavaScript de forma nativa para facilitarnos la manipulación  de éstas. 

A continuación un listado de los métodos más utilizados comúnmente.

Método Descripción charAt() Devuelve una String según el índice que le indiquemos. concat() Une varias Strings y devuelve una sola cadena de texto. endsWith() Devuelve un boolean si la String termina con el valor que le  indiquemos. trim() Elimina los espacios sobrantes en una String. includes() Devuelve un boolean si la String contiene ese valor. indexOf() Devuelve el primer índice donde encuentra el valor dentro  de la String. toString() Convierte un valor (Por ejemplo un número) a String. lastIndexOf() Devuelve el último índice donde encuentra el valor dentro  de la String.
repeat() Repite la String la cantidad de veces que le indiquemos y la  devuelve concatenada. replace() Reemplaza un valor dentro de la String por el segundo valor  que le indiquemos. search() Busca un valor dentro de la String y devuelve el índice donde  se encuentra. slice() Nos permite recortar nuestra String usando 2 parámetros, el  inicio y el final. split() Divide la String en un Array, separando según el parámetro  que le indiquemos. startsWith() Devuelve un boolean si la String empieza con el valor que le  indiquemos. toLowerCase() Convierte toda la String a minúscula. toUpperCase() Convierte toda la String a mayúscula.

¿Cómo podemos utilizar un método un método sobre una String? 

Primero creamos una variable que contenga nuestra cadena de texto. var nombre = “Academia Numen” 

Ahora para utilizar un método tenemos que utilizar esa variable seguido del nombre del  método y sus parámetros. 

Ejemplos prácticos: 

nombre.toUpperCase()  

// ACADEMIA NUMEN 

nombre.toLowerCase()  

// academia numen 

nombre.repeat(2)  

// Academia NumenAcademia Numen 

nombre.replace(“Academia”, “Full Stack”)  

// Academia Full Stack 

Métodos de Array 

Los arreglos (o Array) son utilizados para guardar múltiples valores en una sola variable, se  identifican por índices. 

Ejemplo: 

var array = [“Academia”, “Numen”, “Full Stack”] 

La primera posición de nuestro array comienza desde el número 0 

Si quisieramos imprimirlo en la consola deberíamos escribir: 

array[0] // Academia 

array[1] // Numen 

array[2] // Full Stack 

Primero declaramos el arreglo que vamos a utilizar para los próximos ejemplos 

var users = [ 

 { nombre: “Bart”, apellido: “Simpson”, edad: 10 }, 

 { nombre: “Lisa”, apellido: “Simpson”, edad: 8 }, 

 { nombre: “Maggie”, apellido: “Simpson”, edad: 1 }, 

]

Find 

Busca y devuelve aquella posición que cumpla con el parámetro var resultado = users.find(user => user.edad === 8) 

En éste caso queremos encontrar la posición que contenga la edad de 8 // { nombre: “Lisa”, apellido: “Simpson”, edad: 8 } 

Includes 

Devuelve true o false si en el array existe el valor indicado 

resultado = users.some(user => user.apellido === “Flanders”) 

// false 

Map 

Recorre todo nuestro arreglo y devuelve otro arreglo con lo indicado en el método resultado = users.map(user => user.nombre.toUpperCase()) 

Resultado: 

resultado = [ 

 { nombre: “BART”, apellido: “Simpson”, edad: 10 }, 

 { nombre: “LISA”, apellido: “Simpson”, edad: 8 }, 

 { nombre: “MAGGIE”, apellido: “Simpson”, edad: 1 }, 

]

Filter 

Recorre todo nuestro arreglo y devuelve otro arreglo que cumpla la condición resultado = users.filter(user => user.edad !== 1) 

Resultado: 

resultado = [ 

 { nombre: “BART”, apellido: “Simpson”, edad: 10 }, 

 { nombre: “LISA”, apellido: “Simpson”, edad: 8 }, 

]

Función typeof 

Typeof es un operador JavaScript que al ser llamado sobre una variable, devuelve el tipo  de dato que dicha variable contiene. Entre otras cosas, podemos utilizarlo para validar de  parámetros de una función o para comprobar si una variable ha sido definida. 

El operador typeof es muy útil porque nos permite consultar fácilmente el tipo de datos  que una variable contiene. Esto es importante en JavaScript porque se trata de  un lenguaje escrito dinámicamente. Esto significa que no necesitamos asignar un tipo de  datos fijo a una variable cuando la creamos. Al no restringir las variables de esta manera,  el tipo de datos que contienen puede cambiar durante la ejecución de un programa. 

Por ejemplo: 

var x = 12345; // number 

x = ‘string’; // string 

x = { key: ‘value’ }; // object 

Como podemos ver en el ejemplo anterior, una variable puede cambiar de tipo durante la  ejecución de un programa. En nuestro trabajo diario puede ser complejo llevar un registro  de estos cambios y es en esos casos donde el operador typeof será útil. 

El operador typeof devuelve una cadena de texto que representa el tipo de dato  actualmente contenido en una variable. Para usarlo podemos  

escribir typeof(variable) o typeof variable. Volviendo al ejemplo anterior, podemos  utilizarlo para comprobar el tipo de dato de la variable x en cada paso: 

var x = 12345; 

console.log(typeof x) // number 

x = ‘string’; 

console.log(typeof x) // string 

x = { key: ‘value’ }; 

console.log(typeof x) // object

De esta manera, por ejemplo, podemos comprobar el tipo de dato de una variable dentro  de una función y continuar en caso de obtener el resultado esperado. 

Aquí tenemos una función de ejemplo que puede tomar una variable y anunciar si es una  cadena de texto o un número: 

function verificar(x) { 

 if(typeof(x) === ‘string’) { 

 alert(‘x es una string) 

 } else if(typeof(x) === ‘number’) { 

 alert(‘x es un number) 

 } 

También podemos utilizar el operador typeof para asegurarnos de que una variable ha  sido definida antes de utilizarla en nuestro código. Esto puede ser útil para prevenir un  error muy común, intentar acceder a una variable cuyo valor aún no ha sido definido. 

function(x){ 

 if (typeof(x) === ‘undefined’) { 

 console.log(‘la variable x no está definida’); 

 return; 

 } 

 // aquí continuamos con la función… 

}

Cuando trabajamos con números, el valor que devuelve el operador typeof puede no ser  lo que estamos esperando. 

Los números pueden convertirse en NAN (No es un número) por distintos motivos. console.log(typeof NaN); // “number” 

Quizás estamos intentando multiplicar un número con un objeto, porque olvidamos  acceder al número que ese objeto contiene: 

var x = 1; 

var y = { number: 2 }; 

console.log(x * y); // NaN 

console.log(typeof (x * y)); // number 

En este caso, no será suficiente utilizar typeof para comprobar que el resultado es un  número, ya que NaN también cumple con esta condición. 

En la siguiente función, vamos a comprobar que el valor es un número pero excluyendo  a NaN de la condición: 

function esNumero(data) { 

 return (typeof data === ‘number’ && !isNan(data)); 

Si bien este es un método muy útil para validar tipos de datos, también debemos tener  cuidado porque JavaScript tiene algunas rarezas y entre ellas encontramos el resultado  de typeof en algunas situaciones particulares. En JavaScript muchas cosas son  inesperadamente objetos, como por ejemplo los arreglos (arrays) y los valores null 

var x = [1,2,3,4]; 

console.log(typeof x) // object 

console.log(typeof null) // object

Ir a la barra de herramientas