En las próximas conferencias,
aprenderemos a trabajar con cadenas
y entonces vamos a echar un vistazo
en un par de métodos de cadena útiles.
Ahora podría haber dividido esta parte sobre cadenas
en muchas más conferencias
y profundizar mucho en algunos temas
pero creo que es mejor presentarte rápidamente
a todos los temas aquí
y luego seguir usándolos en futuros proyectos
porque trabajamos con cadenas todo el tiempo en JavaScript
y entonces verá que estos métodos se utilizan
todo el tiempo durante el resto del curso.
De todos modos, esto va a ser muy divertido.
entonces empecemos.
Y en esta parte de la sección,
vamos a dejar atrás el tema del restaurante
y trabajar en cosas relacionadas con aviones y líneas aéreas.
Así que eso es algo que realmente me gusta.
Entonces, comencemos ahora creando una variable de aerolínea aquí.
y estoy usando TAP Air Portugal.
Está bien, y si quieres, puedes usar otro
de tu país tal vez,
pero entonces puede que tenga que adaptar los ejemplos.
Así como un avión,
Estoy usando una cadena A320.
Bueno.
Y ahora vamos a hacer algunas cosas con esto.
Entonces, al igual que en las matrices,
podemos obtener el carácter de una cadena en una determinada posición.
Entonces, por ejemplo, avión en la posición cero
debería ser A, ¿verdad?
Así que vamos a cargar esto aquí.
Y de hecho obtuvimos A
y lo mismo por supuesto para todas las demás letras,
uno, dos por ejemplo.
Y, de hecho, ahora obtienes tres y dos aquí
pero ambos siguen siendo cadenas.
Entonces, si quisiéramos que fueran números,
tendríamos que convertirlos y podemos hacer lo mismo
directamente en una cuerda.
Así que podemos escribir una cadena y escribamos B727 ahora,
que es un Boeing y esto funciona igual.
Bien, ahora llegamos a la B,
también podemos leer la propiedad de longitud de las cadenas,
al igual que podemos en matrices.
Así que digamos aerolínea.longitud.
Y nuevamente, también podemos hacer eso directamente en la cadena.
Bueno.
Ahí tienes
A continuación, hablemos de los métodos.
Entonces, nuevamente comparando cadenas con matrices aquí,
las cadenas también tienen métodos
y algunos de ellos son bastante similares a los métodos de matriz.
Así que uno de ellos es el índice desactivado.
Así que creo que hablamos de este
cuando hablamos de una matriz.
Y entonces este funciona de la misma manera,
para que podamos obtener la posición en la que una determinada letra
está en la cadena.
Así que usemos r aquí.
Y aquí ahora llegamos a la posición número seis.
Y así veamos cero, uno, dos, tres, cuatro, cinco y seis.
Bien, y de ahí viene el seis aquí.
Entonces verá que las cadenas también están basadas en cero, ¿verdad?
Y eso lo pudimos observar ya aquí arriba.
Ahora bien, esto aquí sólo nos dará la primera aparición
pero a veces podemos necesitar el último.
Entonces podemos usar lastIndexOf,
lastIndexOf y eso es 10.
Así que este tenía seis y luego siete,
porque el espacio por supuesto también cuenta como un personaje,
luego ocho, nueve, y esta es la posición 10.
Muy bien y también podemos buscar palabras enteras.
Por ejemplo, para la ocurrencia de Portugal,
y por lo que está en la posición ocho,
y este es realmente sensible a mayúsculas y minúsculas.
Así que si busco con minúsculas,
entonces obtenemos menos uno,
porque esto ahora no se puede encontrar
en la cadena de esta aerolínea.
Muy bien, ¿qué podemos hacer realmente con estos índices?
¿Por qué son útiles?
Bueno, un buen caso de uso es extraer parte
de una cadena usando el método de corte
y un método de división necesita índices como argumentos.
Y por lo tanto a veces puede ser muy útil
para averiguar primero el índice de parte de una cadena
para luego extraer eso.
Entonces, veamos cómo funciona el método de división.
Así que línea aérea y luego corte de puntos,
y escribamos cuatro y veamos el resultado aquí.
Muy bien, entonces el resultado es Air Portugal.
Y la razón de eso es que esto aquí
es el parámetro de inicio.
Así que básicamente es la posición en la que
comenzará la extracción.
Y recuerda que esto está basado en cero.
Así que cero, uno, dos, tres y cuatro.
Así que cuatro resulta ser esta A.
Y aquí es donde el método de corte comienza a extraer.
Y este resultado que obtenemos aquí,
así que solo esto aquí se llama una subcadena
porque es solo una parte de la cadena original.
Ahora bien, esto no cambia la cadena subyacente, ¿de acuerdo?
Solo ten eso en cuenta.
Eso es porque en realidad es imposible mutar cadenas.
Son primitivos, ¿verdad?
Entonces, si quisiéramos usar esta cadena
ahora tendríamos que almacenarlo primero en alguna variable
o alguna estructura de datos.
Bien, entonces este método aquí y todos los demás
del que vamos a hablar siempre devuelve una nueva cadena.
De acuerdo, por eso podemos bloquear ese resultado.
a la consola así.
Ahora, además del parámetro de inicio que ya especificamos,
también podemos especificar un parámetro final.
Así que intentemos con siete y veamos el resultado.
Y ahora solo tenemos aire.
Bien, este es cuatro, luego cinco, seis
y siete es el espacio aquí.
Entonces, lo que esto significa es que el valor final
en realidad no está incluido en la cadena.
Muy bien, básicamente deja de extraer
antes de alcanzar el índice número siete.
Y eso es muy importante a tener en cuenta.
Y solo como nota al margen,
la longitud de la cadena extraída
siempre va a ser final menos principio.
Así que siete menos cuatro es tres.
Y esa es la longitud aquí del aire.
Está bien, está bien.
Ahora hasta este punto,
siempre hemos codificado estos valores,
pero por supuesto muchas veces ni siquiera conocemos la cadena
que recibimos todavía está bien?
Y ahora intentemos extraer solo la primera palabra
de esta cadena aquí,
pero sin conocer ninguno de los índices.
Y ahí es donde está IndexOf,
y lastIndexOf aquí se vuelven realmente importantes.
Básicamente, no tenemos que codificar
estos valores aquí.
Muy bien, tratemos de extraer esa primera palabra.
como decía.
Aerolínea.slice
y ahora tenemos que averiguar el índice.
Y ahora, si queremos la primera palabra, debemos comenzar en cero,
pero ¿qué pasa con el parámetro final?
Bueno, básicamente queremos extraer hasta este espacio aquí.
Así que encontremos el índice de eso.
Así que aerolínea.indexOf,
y recuerda que esta será la primera vez que ocurra
y así de hecho llegamos a la cima.
Muy bien y ahora hagamos lo contrario extrayendo
la última palabra, así que rebanada.
Y así para la última palabra,
queremos comenzar en el último espacio aquí.
Bien, es por eso que tenemos lastIndexOf.
Así que aerolínea.lastIndexOf
y otra vez buscando el espacio.
Y ahora no necesitamos el parámetro final.
porque entonces si no lo especificamos,
simplemente extraerá todo hasta el final.
Bueno.
Pero en realidad ahora el espacio también está incluido aquí.
Entonces solo tenemos que sumar más uno,
y ahora estamos bien.
Así que esos son los fundamentos del método de corte,
pero podemos hacer aún más con él.
Así que vamos de nuevo aquí.
E incluso podemos definir un argumento de inicio negativo.
Así por ejemplo,
y luego comenzará a contar desde el final.
O en realidad empezar a extraer desde el final.
Así que estas son las dos últimas cartas de Portugal.
Y finalmente, dupliquemos este de nuevo.
Y nuevamente estoy usando este atajo aquí para duplicar.
Bueno.
Entonces también podemos especificar un parámetro final negativo.
Así que el comienzo vuelve a ser positivo,
y ahora el final es menos uno.
Entonces, veamos.
Y básicamente comenzamos en la posición uno.
Entonces por eso se corta la T.
Y luego el parámetro final negativo,
básicamente corta el último carácter.
Está bien.
Y entonces necesitaremos todos estos
diferentes combinaciones aquí,
en diferentes situaciones.
Así que es bueno que sepas cómo usarlos,
porque los necesitarás en algún momento.
Bueno.
Y ahora vamos a practicar un poco,
lo que acabamos de aprender
y escribe una función que reciba un asiento de avión
y traba a la consola,
si es un asiento del medio o no.
Espero que suene divertido.
Así que escribamos.
Controlar,
medio,
asiento.
Y es una función que ocupa un asiento.
Y solo para ilustrarlo,
Permítanme comenzar llamando a esta función.
Para comprobar el asiento del medio.
Y tan típicamente,
un asiento de avión se ve así.
Entonces tenemos la fila como un número aquí
y luego el asiento mismo,
así que eso es como la columna, por así decirlo,
entonces es una letra por ejemplo una B.
Así que comienza desde la izquierda.
y va todo el camino hacia el lado derecho.
Y en aviones pequeños, como el A320, o el Boeing 737,
solo tenemos seis asientos en una fila.
Y eso significa que B y E son los asientos del medio.
Déjame escribir eso aquí.
B y E,
son asientos del medio.
Así que en caso de que no estés familiarizado
con cómo funcionan estos pequeños aviones.
Bien.
Y ese tampoco es el punto aquí, por supuesto.
Así que básicamente todo lo que queremos hacer es comprobar
si la cadena que recibimos,
contiene a, B o una E.
Y si es así, entonces es un asiento del medio.
Y llamemos a esto con un par de cadenas diferentes.
Entonces 23C
y 3E.
Muy bien, entonces lo que tenemos que hacer aquí es básicamente
tomar el último carácter de la cadena
y prueba si es una B o una E verdad?
Así que vamos a buscar esa carta del asiento.
Ahora lo llamaremos S de asiento de nuevo,
pero no puedo repetir el mismo nombre aquí.
Entonces, ¿cómo hago eso ahora?
Bueno, para extraer parte de una cadena,
ya sabemos que usamos el método slice
y ¿cómo tomamos el último carácter de una determinada cadena?
Bueno, usamos menos uno como el carácter de inicio.
Y luego, como vimos aquí arriba,
comenzará a contar básicamente uno desde el lado derecho.
Y ahora es muy fácil.
Si S es igual a B
o si S es igual a E,
entonces vamos a iniciar sesión en la consola,
tienes el asiento del medio,
que es el que nadie quiere.
Bueno, agreguemos un emoji aquí.
digamos este
si no
tuviste suerte,
cualquier emoji aquí,
solo para hacerlo diferente
y creo que estamos bien ahora.
Vamos a probarlo.
Y ciertamente esto aquí contiene la B al final.
Y por lo tanto es un asiento del medio,
lo mismo para este
y esta persona con este asiento tuvo suerte.
Muy bien y así es como extraemos partes de cadenas.
Y eso es algo muy importante que hacer.
Así que tal vez si quieres,
puedes jugar un poco más con esto,
tal vez inventes tu propio ejemplo.
Ahora, antes de seguir aquí,
detengámonos por un segundo
y entender por qué todo esto realmente funciona.
Entonces sabemos que las cadenas son solo primitivas.
Entonces, ¿por qué tienen métodos?
¿No deberían estar disponibles solo los métodos
en objetos como una carrera?
Bueno, eso es realmente cierto.
Sin embargo, JavaScript es realmente inteligente.
Y así es como funciona esto.
Cada vez que llamamos a un método en una cadena,
JavaScript aparecerá automáticamente entre bastidores
convertir esa cadena primitiva en un objeto de cadena
con el mismo contenido.
Y luego es en ese objeto donde se llaman los métodos.
Muy bien y este proceso se llama boxeo.
porque básicamente toma nuestra cadena
y lo pone en una caja
cual es el objeto.
Así que básicamente lo que sucede es esto.
Entonces, ¿qué hace JavaScript?
es llamar a esta función de cadena aquí.
Bueno.
Y ahora verás que esta cuerda aquí,
se parece un poco más a un objeto.
Y podríamos echar un vistazo a esto aquí.
Y entonces ven aquí, todos estos métodos,
como rebanada que acabamos de usar.
Pero esto está más allá del alcance de esta conferencia.
Aprenderemos qué es esto un poco más tarde.
Pero lo que importa es que esto sí que es ahora un objeto.
Entonces ves que es un objeto.
Y entonces esta conversión aquí
es lo que hace JavaScript detrás de escena
cada vez que llamamos a un método en una cadena.
Y luego cuando se hace la operación
el objeto se vuelve a convertir en una primitiva de cadena regular.
Bueno.
Y, de hecho, todos los métodos de cadena devuelven primitivas.
Incluso si se llama en un objeto de cadena.
Así que permítanme demostrarnos aquí también.
Simplemente muy rápido.
Y en realidad queremos tu tipo fuera.
Y así el resultado de todo esto,
entonces vuelve a ser una cadena.
Está bien, pero no te confundas con esto.
esto es solo una explicacion teorica
detrás de por qué todo esto funciona en caso de que tengas curiosidad.
Y espero que lo estés.
Excelente.
Pero ahora pasemos al siguiente video,
donde seguiremos trabajando con cadenas.