Merge pull request #458 from EmmanuelArenas/spanish-translation
Spanish translation day 3 of 30pull/473/head
commit
4e5ccf57e1
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,632 @@
|
|||||||
|
<div align="center">
|
||||||
|
<h1> 30 Días De JavaScript: Booleanos, Operadores, Date</h1>
|
||||||
|
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
|
||||||
|
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
|
||||||
|
</a>
|
||||||
|
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
|
||||||
|
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<sub>Autor:
|
||||||
|
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
|
||||||
|
<small> Enero, 2020</small>
|
||||||
|
</sub>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[<< Day 2](../dia_02_tipos_de_datos.md) | [Day 4 >>](../dia_04_Condicionales/dia_04_Condicionales.md)
|
||||||
|
|
||||||
|
![Thirty Days Of JavaScript](../images/banners/day_1_3.png)
|
||||||
|
|
||||||
|
- [📔 Día 3](#-day-3)
|
||||||
|
- [Booleanos](#booleanos)
|
||||||
|
- [Valores verdaderos](#valores-verdaderos)
|
||||||
|
- [Valores falsos](#valores-falsos)
|
||||||
|
- [Undefined](#undefined)
|
||||||
|
- [Null](#null)
|
||||||
|
- [Operadores](#operadores)
|
||||||
|
- [Operadores de Asignación](#operadores-de-asignación)
|
||||||
|
- [Operadores Aritméticos](#operadores-aritméticos)
|
||||||
|
- [Operadores de Comparación](#operadores-de-comparación)
|
||||||
|
- [Operadores Lógicos](#operadores-lógicos)
|
||||||
|
- [Operadores de Incremento](#operadores-de-incremento)
|
||||||
|
- [Operadores de Decremento](#operadores-de-decremento)
|
||||||
|
- [Operadores Ternarios](#operadores-ternarios)
|
||||||
|
- [Precedencia de Operadores](#precedencia-de-operadores)
|
||||||
|
- [Métodos Window](#métodos-window)
|
||||||
|
- [Método Window alert()](#método-window-alert)
|
||||||
|
- [Método Window prompt() ](#método-window-prompt)
|
||||||
|
- [Método Window confirm() ](#método-window-confirm)
|
||||||
|
- [Objeto Date](#objeto-date)
|
||||||
|
- [Crear un objeto de tiempo](#crear-un-objeto-de-tiempo)
|
||||||
|
- [Obtener el año completo](#obtener-el-año-completo)
|
||||||
|
- [Obtener mes](#obtener-mes)
|
||||||
|
- [Obtener fecha](#obtener-fecha)
|
||||||
|
- [Obtener día](#obtener-día)
|
||||||
|
- [Obtener horas](#obtener-horas)
|
||||||
|
- [Obtener minutos](#obtener-minutos)
|
||||||
|
- [Obtener segundos](#obtener-segundos)
|
||||||
|
- [Obtener tiempo](#obtener-tiempo)
|
||||||
|
- [💻 Día 3: Ejercicios](#💻-día-3-ejercicios)
|
||||||
|
- [Ejercicios: Nivel 1](#ejercicios-nivel-1)
|
||||||
|
- [Ejercicios: Nivel 2](#ejercicios-nivel-2)
|
||||||
|
- [Ejercicios: Nivel 3](#ejercicios-nivel-3)
|
||||||
|
|
||||||
|
# 📔 Day 3
|
||||||
|
|
||||||
|
## Booleanos
|
||||||
|
|
||||||
|
Un tipo de dato booleano representa uno de los dos valores: _true_ o _false_. El valor booleano es true (verdadero) o false (falso) El uso de estos tipos de datos quedará claro cuando veas operadores de comparación. Cualquier comparación devuelve un valor booleano que es true o false.
|
||||||
|
|
||||||
|
**Ejemplos: Valores Booleanos**
|
||||||
|
|
||||||
|
```js
|
||||||
|
let isLightOn = true;
|
||||||
|
let isRaining = false;
|
||||||
|
let isHungry = false;
|
||||||
|
let isMarried = true;
|
||||||
|
let truValue = 4 > 3; // true
|
||||||
|
let falseValue = 4 < 3; // false
|
||||||
|
```
|
||||||
|
|
||||||
|
Acordamos que los valores booleanos son true o false.
|
||||||
|
|
||||||
|
### Valores verdaderos
|
||||||
|
|
||||||
|
- Todos los números (positivos y negativos) son verdaderos excepto cero
|
||||||
|
- Todos las string (cadenas) son verdaderos excepto un string vacío ('')
|
||||||
|
- El booleano true
|
||||||
|
|
||||||
|
### Valores falsos
|
||||||
|
|
||||||
|
- 0
|
||||||
|
- 0n
|
||||||
|
- null
|
||||||
|
- undefined
|
||||||
|
- NaN
|
||||||
|
- El booleano false
|
||||||
|
- '', "", ``, string vacío
|
||||||
|
|
||||||
|
Es bueno recordar esos valores verdaderos y falsos. En una sección posterior, los usaremos con condiciones para tomar decisiones.
|
||||||
|
|
||||||
|
## Undefined
|
||||||
|
|
||||||
|
Si declaramos una variable y no le asignamos un valor, el valor será undefined (indefinido). Además de esto, si una función no devuelve el valor, será undefined.
|
||||||
|
|
||||||
|
```js
|
||||||
|
let firstName;
|
||||||
|
console.log(firstName); //no definido, porque aún no está asignado un valor
|
||||||
|
```
|
||||||
|
|
||||||
|
## Null
|
||||||
|
|
||||||
|
```js
|
||||||
|
let empty = null;
|
||||||
|
console.log(empty); // -> null (nulo) , significa que no tiene valor
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operadores
|
||||||
|
|
||||||
|
### Operadores de Asignación
|
||||||
|
|
||||||
|
Un signo igual en JavaScript es un operador de asignación. Se utiliza para asignar una variable.
|
||||||
|
|
||||||
|
```js
|
||||||
|
let firstName = "Asabeneh";
|
||||||
|
let country = "Finland";
|
||||||
|
```
|
||||||
|
|
||||||
|
Operadores de asignación
|
||||||
|
|
||||||
|
![Assignment operators](../images/assignment_operators.png)
|
||||||
|
|
||||||
|
### Operadores Aritméticos
|
||||||
|
|
||||||
|
Los operadores aritméticos son operadores matemáticos.
|
||||||
|
|
||||||
|
- Suma(+): a + b
|
||||||
|
- Resta(-): a - b
|
||||||
|
- Multiplicación(_): a _ b
|
||||||
|
- División(/): a / b
|
||||||
|
- Módulo(%): a % b
|
||||||
|
- Exponencial(**): a ** b
|
||||||
|
|
||||||
|
```js
|
||||||
|
let numOne = 4;
|
||||||
|
let numTwo = 3;
|
||||||
|
let sum = numOne + numTwo;
|
||||||
|
let diff = numOne - numTwo;
|
||||||
|
let mult = numOne * numTwo;
|
||||||
|
let div = numOne / numTwo;
|
||||||
|
let remainder = numOne % numTwo;
|
||||||
|
let powerOf = numOne ** numTwo;
|
||||||
|
|
||||||
|
console.log(sum, diff, mult, div, remainder, powerOf); // 7,1,12,1.33,1, 64
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const PI = 3.14;
|
||||||
|
let radius = 100; // longitud en metros
|
||||||
|
|
||||||
|
//Calculemos el área de un circulo
|
||||||
|
const areaOfCircle = PI * radius * radius;
|
||||||
|
console.log(areaOfCircle); // 314 m
|
||||||
|
|
||||||
|
const gravity = 9.81; // en m/s2
|
||||||
|
let mass = 72; // en Kilogram
|
||||||
|
|
||||||
|
// Calculemos el peso de un objeto.
|
||||||
|
const weight = mass * gravity;
|
||||||
|
console.log(weight); // 706.32 N(Newton)
|
||||||
|
|
||||||
|
const boilingPoint = 100; // temperatura en °C, punto de ebullición del agua
|
||||||
|
const bodyTemp = 37; // temperatura corporal en °C
|
||||||
|
|
||||||
|
// Concatenación de string con números usando interpolación de strings
|
||||||
|
/*
|
||||||
|
El punto de ebullición del agua es de 100 °C.
|
||||||
|
La temperatura del cuerpo humano es de 37 oC.
|
||||||
|
La gravedad de la tierra es de 9.81 m/s2.
|
||||||
|
*/
|
||||||
|
console.log(
|
||||||
|
`El punto de ebullición del agua es de ${boilingPoint} °C.\nLa temperatura del cuerpo humano es de ${bodyTemp} °C.\nLa gravedad de la tierra es de ${gravity} m / s2.`
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Operadores de Comparación
|
||||||
|
|
||||||
|
En programación comparamos valores, usamos operadores de comparación para comparar dos valores. Comprobamos si un valor es mayor, menor o igual a otro valor.
|
||||||
|
|
||||||
|
![Operadores de Comparación](../images/comparison_operators.png)
|
||||||
|
**Ejemplos: Operadores de Comparación**
|
||||||
|
|
||||||
|
```js
|
||||||
|
console.log(3 > 2); // true, porque 3 es mayor que 2
|
||||||
|
console.log(3 >= 2); // true, porque 3 es mayor que 2
|
||||||
|
console.log(3 < 2); // false, porque 3 es mayor que 2
|
||||||
|
console.log(2 < 3); // true, porque 2 es menor que 3
|
||||||
|
console.log(2 <= 3); // true, porque 2 es menor que 3
|
||||||
|
console.log(3 == 2); // false, porque 3 no es igual a 2
|
||||||
|
console.log(3 != 2); // true, porque 3 no es igual a 2
|
||||||
|
console.log(3 == "3"); // true, compara solamente el valor
|
||||||
|
console.log(3 === "3"); // false, compara tanto el valor como el tipo de dato
|
||||||
|
console.log(3 !== "3"); // true, compara tanto el valor como el tipo de dato
|
||||||
|
console.log(3 != 3); // false, compara solo valor
|
||||||
|
console.log(3 !== 3); // false, compara tanto el valor como el tipo de dato
|
||||||
|
console.log(0 == false); // true, equivalente
|
||||||
|
console.log(0 === false); // false, No exactamente igual
|
||||||
|
console.log(0 == ""); // true, equivalente
|
||||||
|
console.log(0 == " "); // true, equivalente
|
||||||
|
console.log(0 === ""); // false, No exactamente igual
|
||||||
|
console.log(1 == true); // true, equivalente
|
||||||
|
console.log(1 === true); // false, No exactamente igual
|
||||||
|
console.log(undefined == null); // true
|
||||||
|
console.log(undefined === null); // false
|
||||||
|
console.log(NaN == NaN); // false, diferente
|
||||||
|
console.log(NaN === NaN); // false
|
||||||
|
console.log(typeof NaN); // tipo número
|
||||||
|
|
||||||
|
console.log("mango".length == "avocado".length); // false
|
||||||
|
console.log("mango".length != "avocado".length); // true
|
||||||
|
console.log("mango".length < "avocado".length); // true
|
||||||
|
console.log("milk".length == "meat".length); // true
|
||||||
|
console.log("milk".length != "meat".length); // false
|
||||||
|
console.log("tomato".length == "potato".length); // true
|
||||||
|
console.log("python".length > "dragon".length); // false
|
||||||
|
```
|
||||||
|
|
||||||
|
Trate de entender las comparaciones anteriores con algo de lógica. Recuerde que ninguna lógica puede ser difícil.
|
||||||
|
JavaScript es de alguna manera un lenguaje extraño de programación. El código JavaScript se ejecuta y le da un resultado, pero a menos que sea bueno en él, puede que no sea el resultado deseado.
|
||||||
|
|
||||||
|
Como regla general, si un valor no es verdadero con == no será igual con ===. Usar === es más seguro que usar ==. El siguiente [link](https://dorey.github.io/JavaScript-Equality-Table/) tiene una lista exhaustiva de comparaciones de tipos de datos.
|
||||||
|
|
||||||
|
### Operadores Lógicos
|
||||||
|
|
||||||
|
Los siguientes símbolos son los operadores lógicos más comunes:
|
||||||
|
&&(ampersand) , ||(pipe) and !(negation).
|
||||||
|
El operador && se vuelve verdadero sólo si los dos operandos son verdaderos.
|
||||||
|
El operador || se vuelve verdadero cualquiera de los operandos es verdadero.
|
||||||
|
El operador ! niega true a false y false a true.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// && ejemplo de operador ampersand
|
||||||
|
|
||||||
|
const check = 4 > 3 && 10 > 5; // true && true -> true
|
||||||
|
const check = 4 > 3 && 10 < 5; // true && false -> false
|
||||||
|
const check = 4 < 3 && 10 < 5; // false && false -> false
|
||||||
|
|
||||||
|
// || ejemplo de operador pipe
|
||||||
|
|
||||||
|
const check = 4 > 3 || 10 > 5; // true || true -> true
|
||||||
|
const check = 4 > 3 || 10 < 5; // true || false -> true
|
||||||
|
const check = 4 < 3 || 10 < 5; // false || false -> false
|
||||||
|
|
||||||
|
//! ejemplos de negación
|
||||||
|
|
||||||
|
let check = 4 > 3; // true
|
||||||
|
let check = !(4 > 3); // false
|
||||||
|
let isLightOn = true;
|
||||||
|
let isLightOff = !isLightOn; // false
|
||||||
|
let isMarried = !false; // true
|
||||||
|
```
|
||||||
|
|
||||||
|
### Operadores de Incremento
|
||||||
|
|
||||||
|
En JavaScript usamos el operador de incremento para aumentar un valor almacenado en una variable. El incremento podría ser antes o después del incremento. Veamos cada uno de ellos:
|
||||||
|
|
||||||
|
1. Pre-incremento
|
||||||
|
|
||||||
|
```js
|
||||||
|
let count = 0;
|
||||||
|
console.log(++count); // 1
|
||||||
|
console.log(count); // 1
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Post-incremento
|
||||||
|
|
||||||
|
```js
|
||||||
|
let count = 0;
|
||||||
|
console.log(count++); // 0
|
||||||
|
console.log(count); // 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Usamos la mayor parte del tiempo post-incremento. Pero debes recordar cómo usar el operador de incremento posterior.
|
||||||
|
|
||||||
|
### Operadores de Decremento
|
||||||
|
|
||||||
|
En JavaScript usamos el operador de decremento para disminuir un valor almacenado en una variable. El decremento puede ser previo o posterior al decremento. Veamos cada uno de ellos:
|
||||||
|
|
||||||
|
1. Pre-decremento
|
||||||
|
|
||||||
|
```js
|
||||||
|
let count = 0;
|
||||||
|
console.log(--count); // -1
|
||||||
|
console.log(count); // -1
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Post-decremento
|
||||||
|
|
||||||
|
```js
|
||||||
|
let count = 0;
|
||||||
|
console.log(count--); // 0
|
||||||
|
console.log(count); // -1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Operadores Ternarios
|
||||||
|
|
||||||
|
El operador ternario permite escribir una condición.
|
||||||
|
Otra forma de escribir condicionales es usando operadores ternarios. Mira los siguientes ejemplos:
|
||||||
|
|
||||||
|
```js
|
||||||
|
let isRaining = true;
|
||||||
|
isRaining
|
||||||
|
? console.log("Necesitas un impermeable.")
|
||||||
|
: console.log("No necesitas un impermeable.");
|
||||||
|
isRaining = false;
|
||||||
|
|
||||||
|
isRaining
|
||||||
|
? console.log("Necesitas un impermeable.")
|
||||||
|
: console.log("No necesitas un impermeable.");
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Necesitas un impermeable.
|
||||||
|
No necesitas un impermeable.
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
let number = 5;
|
||||||
|
number > 0
|
||||||
|
? console.log(`${number} is a positive number`)
|
||||||
|
: console.log(`${number} is a negative number`);
|
||||||
|
number = -5;
|
||||||
|
|
||||||
|
number > 0
|
||||||
|
? console.log(`${number} is a positive number`)
|
||||||
|
: console.log(`${number} is a negative number`);
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
5 es un número positivo
|
||||||
|
-5 es un número negativo
|
||||||
|
```
|
||||||
|
|
||||||
|
### Precedencia de Operadores
|
||||||
|
|
||||||
|
Me gustaría recomendarle que lea sobre la precedencia de operadores en el siguiente [link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)
|
||||||
|
|
||||||
|
## Métodos Window
|
||||||
|
|
||||||
|
### Método Window alert()
|
||||||
|
|
||||||
|
Cómo ha visto al principio, el método alert() muestra un cuadro de alerta con un mensaje específico y un botón Aceptar. Es un método incorporado y toma un argumento.
|
||||||
|
|
||||||
|
```js
|
||||||
|
alert(message);
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
alert("Bienvenido a 30DaysOfJavaScript");
|
||||||
|
```
|
||||||
|
|
||||||
|
No uses demasiada alert (alertas) porque molesta, úsala solo para probar.
|
||||||
|
|
||||||
|
### Método Window prompt()
|
||||||
|
|
||||||
|
Los métodos window prompt (entrada) muestran un cuadro de solicitud con una entrada en su navegador para tomar valores de entrada y los datos de entrada se pueden almacenar en una variable. El método prompt() toma dos argumentos. El segundo argumento es opcional.
|
||||||
|
|
||||||
|
```js
|
||||||
|
prompt("texto requerido", "texto opcional");
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
let number = prompt("Ingrese un número", "El número va aquí");
|
||||||
|
console.log(number);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Método Window confirm()
|
||||||
|
|
||||||
|
El método confirm() muestra un cuadro de diálogo con un mensaje específico, junto con un botón Aceptar y Cancelar. Un cuadro de confirmación se usa a menudo para pedir permiso a un usuario para ejecutar algo. Window confirm() toma una cadena como argumento. Al hacer clic en Aceptar se obtiene un valor true, mientras que al hacer clic en el botón Cancelar se obtiene un valor false.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const agree = confirm("¿Estás seguro de que quieres eliminar? ");
|
||||||
|
console.log(agree); // el resultado será true o false según el click en el cuadro de diálogo
|
||||||
|
```
|
||||||
|
|
||||||
|
Estos no son todos los métodos de window, tendremos una sección separada para profundizar en los métodos de window.
|
||||||
|
|
||||||
|
## Objeto Date
|
||||||
|
|
||||||
|
El tiempo es una cosa importante. Nos gusta saber la hora de una determinada actividad o evento. En JavaScript, la hora y la fecha actuales se crean utilizando el objeto Date de JavaScript. El objeto que creamos usando el objeto Date proporciona muchos métodos para trabajar con fecha y hora. Los métodos que usamos para obtener información de fecha y hora de los valores de un objeto Date comienzan con una palabra _get_ porque proporciona la información.
|
||||||
|
_getFullYear(), getMonth(), getDate(), getDay(), getHours(), getMinutes, getSeconds(), getMilliseconds(), getTime(), getDay()_
|
||||||
|
|
||||||
|
![Date time Object](../images/date_time_object.png)
|
||||||
|
|
||||||
|
### Crear un objeto de tiempo
|
||||||
|
|
||||||
|
Una vez que creamos el objeto de tiempo. El objeto de tiempo proporcionará información sobre el tiempo. Vamos a crear un objeto de tiempo
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now); // Sáb 04 de enero de 2020 00:56:41 GMT+0200 (hora estándar de Europa del Este
|
||||||
|
```
|
||||||
|
|
||||||
|
Hemos creado un objeto de tiempo y podemos acceder a cualquier información de fecha y hora del objeto utilizando los métodos de obtención que hemos mencionado en la tabla.
|
||||||
|
|
||||||
|
### Obtener el año completo
|
||||||
|
|
||||||
|
Extraigamos u obtengamos el año completo de un objeto de tiempo.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now.getFullYear()); // 2020
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener mes
|
||||||
|
|
||||||
|
Extraigamos u obtengamos el mes de un objeto de tiempo.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now.getMonth()); // 0, porque el mes es enero, meses(0-11)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener fecha
|
||||||
|
|
||||||
|
Extraigamos u obtengamos la fecha del mes de un objeto de tiempo.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now.getDate()); // 4, porque es el 4to dia del mes, día (1-31)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener día
|
||||||
|
|
||||||
|
Extraigamos u obtengamos el día de la semana de un objeto de tiempo.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now.getDay()); // 6, porque el día es sábado que es el día 7
|
||||||
|
// El domingo es 0, el lunes es 1 y el sábado es 6
|
||||||
|
// Obtener el día de la semana como un número (0-6)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener horas
|
||||||
|
|
||||||
|
Extraigamos u obtengamos las horas de un objeto de tiempo.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now.getHours()); // 0, porque el tiempo es 00:56:41
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener minutos
|
||||||
|
|
||||||
|
Extraigamos u obtengamos los minutos de un objeto de tiempo.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now.getMinutes()); // 56, porque el tiempo es 00:56:41
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener segundos
|
||||||
|
|
||||||
|
Extraigamos u obtengamos los segundos de un objeto de tiempo.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
console.log(now.getSeconds()); // 41, porque el tiempo es 00:56:41
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener tiempo
|
||||||
|
|
||||||
|
Este método da tiempo en milisegundos a partir del 1 de enero de 1970. También se conoce como tiempo Unix. Podemos obtener el tiempo de Unix de dos maneras:
|
||||||
|
|
||||||
|
1. Usando _getTime()_
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date(); //
|
||||||
|
console.log(now.getTime()); // 1578092201341, este es el número de segundos que han pasado desde el 1ero de Enero de 1970 al 4 de Enero del 2020 00:56:41
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Usando _Date.now()_
|
||||||
|
|
||||||
|
```js
|
||||||
|
const allSeconds = Date.now(); //
|
||||||
|
console.log(allSeconds); // 1578092201341, este es el número de segundos que han pasado desde el 1ero de Enero de 1970 al 4 de Enero del 2020 00:56:41
|
||||||
|
|
||||||
|
const timeInSeconds = new Date().getTime();
|
||||||
|
console.log(allSeconds == timeInSeconds); // true
|
||||||
|
```
|
||||||
|
|
||||||
|
Vamos a formatear estos valores a un formato de tiempo legible por humanos.
|
||||||
|
**Ejemplo:**
|
||||||
|
|
||||||
|
```js
|
||||||
|
const now = new Date();
|
||||||
|
const year = now.getFullYear(); // return años
|
||||||
|
const month = now.getMonth() + 1; // return meses(0 - 11)
|
||||||
|
const date = now.getDate(); // return días (1 - 31)
|
||||||
|
const hours = now.getHours(); // return horas (0 - 23)
|
||||||
|
const minutes = now.getMinutes(); // return minutos (0 -59)
|
||||||
|
|
||||||
|
console.log(`${date}/${month}/${year} ${hours}:${minutes}`); // 4/1/2020 0:56
|
||||||
|
```
|
||||||
|
|
||||||
|
🌕 Tienes una energía ilimitada. Acabas de completar los desafíos del día 3 y estás a tres pasos de tu camino hacia la grandeza. Ahora haz algunos ejercicios para tu cerebro y tus músculos.
|
||||||
|
|
||||||
|
## 💻 Día 3: Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Declare las siguientes variables; firstName, lastName, country, city, age, isMarried, year y asignar un valor, use el operador typeof para verificar diferentes tipos de datos.
|
||||||
|
2. Verifique si typeof '10' es igual a 10
|
||||||
|
3. Verifique si parseInt('9.8') es igual a 10
|
||||||
|
4. Verifique cualquier valor booleano true o false.
|
||||||
|
|
||||||
|
1. Escriba tres declaraciones de JavaScript que proporcionen un valor verdadero.
|
||||||
|
2. Escriba tres declaraciones de JavaScript que proporcionen un valor falso.
|
||||||
|
|
||||||
|
5. Calcule primero el resultado de la siguiente expresión de comparación sin usar console.log(). Después de decidir el resultado, confirmelo usando console.log()
|
||||||
|
|
||||||
|
1. 4 > 3
|
||||||
|
2. 4 >= 3
|
||||||
|
3. 4 < 3
|
||||||
|
4. 4 <= 3
|
||||||
|
5. 4 == 4
|
||||||
|
6. 4 === 4
|
||||||
|
7. 4 != 4
|
||||||
|
8. 4 !== 4
|
||||||
|
9. 4 != '4'
|
||||||
|
10. 4 == '4'
|
||||||
|
11. 4 === '4'
|
||||||
|
12. Encuentre la longitud de Python y jargon y haga una declaración de comparación falsa.
|
||||||
|
|
||||||
|
6. Calcule primero el resultado de las siguientes expresiones sin usar console.log(). Después de decidir el resultado, confirmelo usando console.log()
|
||||||
|
|
||||||
|
1. 4 > 3 && 10 < 12
|
||||||
|
2. 4 > 3 && 10 > 12
|
||||||
|
3. 4 > 3 || 10 < 12
|
||||||
|
4. 4 > 3 || 10 > 12
|
||||||
|
5. !(4 > 3)
|
||||||
|
6. !(4 < 3)
|
||||||
|
7. !(false)
|
||||||
|
8. !(4 > 3 && 10 < 12)
|
||||||
|
9. !(4 > 3 && 10 > 12)
|
||||||
|
10. !(4 === '4')
|
||||||
|
11. No hay 'on' tanto en dragon como en python
|
||||||
|
|
||||||
|
7. Utilice el objeto Date para realizar las siguientes actividades
|
||||||
|
1. ¿Qué año es hoy?
|
||||||
|
2. ¿Qué mes es hoy con un número?
|
||||||
|
3. ¿Qué fecha es hoy?
|
||||||
|
4. ¿Qué día es hoy con un número?
|
||||||
|
5. ¿Cuál es la hora actual?
|
||||||
|
6. ¿Cuántos minutos hay actualmente?
|
||||||
|
7. Averigüe el número de segundos transcurridos desde el 1 de enero de 1970 hasta ahora.
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Escriba un script que solicite al usuario que ingrese la base y la altura del triángulo y calcule el área de un triángulo (área = 0,5 x b x h).
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Ingrese base: 20
|
||||||
|
Ingrese altura: 10
|
||||||
|
El área del triángulo es: 100
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Escriba un script que solicite al usuario que ingrese el lado a, el lado b y el lado c del triángulo y calcule el perímetro del triángulo (perímetro = a + b + c)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Ingrese lado a: 5
|
||||||
|
Ingrese lado b: 4
|
||||||
|
Ingrese lado c: 3
|
||||||
|
El perimetro del triangulo es: 12
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Obtenga el largo y el ancho usando prompt y calcule el área del rectángulo (área = largo x ancho y el perímetro del rectángulo (perímetro = 2 x (largo + ancho))
|
||||||
|
1. Obtenga el radio usando prompt y calcule el área de un círculo (área = pi x r x r) y la circunferencia de un círculo (c = 2 x pi x r) donde pi = 3.14.
|
||||||
|
1. Calcule la pendiente, la intersección X y la intersección Y de y = 2x -2
|
||||||
|
1. La pendiente es m = (y<sub>2</sub>-y<sub>1</sub>)/(x<sub>2</sub>-x<sub>1</sub>). Encuentra la pendiente entre el punto (2, 2) y el punto (6,10)
|
||||||
|
1. Compare la pendiente de las dos preguntas anteriores.
|
||||||
|
1. Calcula el valor de y (y = x<sup>2</sup> + 6x + 9). Trate de usar diferentes valores de x y averigüe en qué valor de x y es 0.
|
||||||
|
1. Escriba un script con prompt que solicite al usuario que ingrese las horas y la tarifa por hora. ¿Calcular el salario de la persona?
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Ingrese horas: 40
|
||||||
|
Introduce la tarifa por hora: 28
|
||||||
|
Su ganancia semanal es 1120
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Si la longitud de su nombre es mayor que 7, diga que su nombre es largo; de lo contrario, diga que su nombre es corto.
|
||||||
|
1. Compare la longitud de su nombre y la longitud de su apellido y debería obtener este resultado.
|
||||||
|
|
||||||
|
```js
|
||||||
|
let firstName = "Asabeneh";
|
||||||
|
let lastName = "Yetayeh";
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Tu primer nombre, Asabeneh, es más largo que tu apellido, Yetayeh.
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Declare dos variables _myAge_ y _yourAge_ y asignarles los valores iniciales y myAge y yourAge.
|
||||||
|
|
||||||
|
```js
|
||||||
|
let myAge = 250;
|
||||||
|
let yourAge = 25;
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Soy 225 años mayor que tú.
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Usando prompt, obtenga el año en que nació el usuario y, si el usuario tiene 18 años o más, permita que el usuario conduzca, si no dígale que espere una cierta cantidad de años.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
|
||||||
|
Introduzca el año de nacimiento: 1995
|
||||||
|
Tienes 25 años. Tienes la edad suficiente para conducir.
|
||||||
|
|
||||||
|
Introduzca el año de nacimiento: 2005
|
||||||
|
Tienes 15 años. Podrás conducir después de 3 años.
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Escriba un script que solicite por prompt al usuario que ingrese el número de años. Calcular el número de segundos que puede vivir una persona. Supongamos que alguien vive solo cien años
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Ingrese el número de años de vida: 100
|
||||||
|
Viviste 3153600000 segundos.
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Cree un formato de hora legible por humanos usando el objeto Date.
|
||||||
|
1. YYYY-MM-DD HH:mm
|
||||||
|
2. DD-MM-YYYY HH:mm
|
||||||
|
3. DD/MM/YYYY HH:mm
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. Cree un formato de hora legible por humanos usando el objeto Date. La hora y el minuto deben ser siempre dos dígitos (7 horas deben ser 07 y 5 minutos deben ser 05)
|
||||||
|
1. YYY-MM-DD HH:mm eg. 20120-01-02 07:05
|
||||||
|
|
||||||
|
[<< Day 2](../dia_02_tipos_de_datos.md) | [Day 4 >>](../dia_04_Condicionales/dia_04_Condicionales.md)
|
@ -0,0 +1,376 @@
|
|||||||
|
<div align="center">
|
||||||
|
<h1> 30 Días de JavaScript: Condicionales</h1>
|
||||||
|
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
|
||||||
|
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
|
||||||
|
</a>
|
||||||
|
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
|
||||||
|
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<sub>Autor:
|
||||||
|
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
|
||||||
|
<small> Enero, 2020</small>
|
||||||
|
</sub>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[<< Día 3](../dia_03_Booleanos_Operadores_Date/dia_03_Boleanos_Operadores_Date.md) | [Día 5 >>](../dia_05_Arreglos/dia_05_arreglos.md)
|
||||||
|
|
||||||
|
![Thirty Days Of JavaScript](../images/banners/day_1_4.png)
|
||||||
|
|
||||||
|
- [📔 Día 4](#📔-día-4)
|
||||||
|
- [Condicionales](#condicionales)
|
||||||
|
- [If](#if)
|
||||||
|
- [If Else](#if-else)
|
||||||
|
- [If Else if Else](#if-else-if-else)
|
||||||
|
- [Switch](#switch)
|
||||||
|
- [Operadores Ternarios](#operadores-ternarios)
|
||||||
|
- [💻 Ejercicios](#💻-ejercicios)
|
||||||
|
- [Ejercicios: Nivel 1](#ejercicios-nivel-1)
|
||||||
|
- [Ejercicios: Nivel 2](#ejercicios-nivel-2)
|
||||||
|
- [Ejercicios: Nivel 3](#ejercicios-nivel-3)
|
||||||
|
|
||||||
|
# 📔 Día 4
|
||||||
|
|
||||||
|
## Condicionales
|
||||||
|
|
||||||
|
Las declaraciones condicionales se utilizan para tomar decisiones basadas en diferentes condiciones. De forma predeterminada, las declaraciones en el script de JavaScript se ejecutan secuencialmente de arriba a abajo. Si la lógica de procesamiento lo requiere, el flujo secuencial de ejecución se puede alterar de dos formas:
|
||||||
|
|
||||||
|
- Ejecución condicional: se ejecutará un bloque de una o más sentencias si cierta expresión es true
|
||||||
|
- Ejecución repetitiva: un bloque de una o más sentencias se ejecutará de forma repetitiva siempre que cierta expresión sea verdadera. En esta sección, cubriremos las declaraciones _if_, _else_ y _else if_. Los operadores lógicos y de comparación que aprendimos en las secciones anteriores serán útiles aquí.
|
||||||
|
|
||||||
|
Las condiciones se pueden implementar de las siguientes maneras:
|
||||||
|
|
||||||
|
- if
|
||||||
|
- if else
|
||||||
|
- if else if else
|
||||||
|
- switch
|
||||||
|
- operador ternario
|
||||||
|
|
||||||
|
### If
|
||||||
|
|
||||||
|
En JavaScript y otros lenguajes de programación, la palabra clave _if_ se usa para verificar si una condición es true y ejecutar el bloque de código. Para crear una condición if, necesitamos la palabra clave _if_, la condición va dentro de paréntesis y el bloque de código va dentro de llaves ({}).
|
||||||
|
|
||||||
|
```js
|
||||||
|
// sintaxis
|
||||||
|
if (condition) {
|
||||||
|
//esta parte del código se ejecuta cuando es true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
```js
|
||||||
|
let num = 3;
|
||||||
|
if (num > 0) {
|
||||||
|
console.log(`${num} es un número positivo`);
|
||||||
|
}
|
||||||
|
// 3 es un número positivo
|
||||||
|
```
|
||||||
|
|
||||||
|
Como puede ver en el ejemplo de condición anterior, 3 es mayor que 0, por lo que es un número positivo. La condición era true y se ejecutó el bloque de código. Sin embargo, si la condición es falsa, no veremos ningún resultado.
|
||||||
|
|
||||||
|
```js
|
||||||
|
let isRaining = true;
|
||||||
|
if (isRaining) {
|
||||||
|
console.log("Recuerda llevar tu impermeable.");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Lo mismo ocurre con la segunda condición, si isRaining es false, el bloque if no se ejecutará y no veremos ninguna respuesta. Para ver el resultado de una condición false, debemos tener otro bloque, que será _else_.
|
||||||
|
|
||||||
|
### If Else
|
||||||
|
|
||||||
|
Si la condición es true, se ejecutará el primer bloque, si no, se ejecutará la condición else.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// sintaxis
|
||||||
|
if (condition) {
|
||||||
|
// esta parte del código se ejecuta para la condición de verdad
|
||||||
|
} else {
|
||||||
|
// esta parte del código se ejecuta para una condición falsa
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
let num = 3;
|
||||||
|
if (num > 0) {
|
||||||
|
console.log(`${num} es un número positivo`);
|
||||||
|
} else {
|
||||||
|
console.log(`${num} es un número negativo`);
|
||||||
|
}
|
||||||
|
// 3 es un número positivo
|
||||||
|
|
||||||
|
num = -3;
|
||||||
|
if (num > 0) {
|
||||||
|
console.log(`${num} es un número positivo`);
|
||||||
|
} else {
|
||||||
|
console.log(`${num} es un número negativo`);
|
||||||
|
}
|
||||||
|
// -3 es un número negativo
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
let isRaining = true;
|
||||||
|
if (isRaining) {
|
||||||
|
console.log("Necesitas un impermeable.");
|
||||||
|
} else {
|
||||||
|
console.log("No hay necesidad de un impermeable.");
|
||||||
|
}
|
||||||
|
// Necesitas un impermeable.
|
||||||
|
|
||||||
|
isRaining = false;
|
||||||
|
if (isRaining) {
|
||||||
|
console.log("Necesitas un impermeable.");
|
||||||
|
} else {
|
||||||
|
console.log("No hay necesidad de un impermeable.");
|
||||||
|
}
|
||||||
|
// No hay necesidad de un impermeable.
|
||||||
|
```
|
||||||
|
|
||||||
|
La última condición es falsa, por lo que se ejecutó el bloque else. ¿Qué pasa si tenemos más de dos condiciones? En ese caso, usaremos las condiciones _else if_.
|
||||||
|
|
||||||
|
### If Else if Else
|
||||||
|
|
||||||
|
En nuestra vida, tomamos decisiones diariamente. Tomamos decisiones no comprobando una o dos condiciones, sino que tomamos decisiones basadas en múltiples condiciones. Al igual que nuestra vida diaria, la programación también está llena de condiciones. Usamos _else if_ cuando tenemos múltiples condiciones.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// sintaxis
|
||||||
|
if (condition) {
|
||||||
|
// código
|
||||||
|
} else if (condition) {
|
||||||
|
// código
|
||||||
|
} else {
|
||||||
|
// código
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ejemplo:**
|
||||||
|
|
||||||
|
```js
|
||||||
|
let a = 0;
|
||||||
|
if (a > 0) {
|
||||||
|
console.log(`${a} es un número positivo`);
|
||||||
|
} else if (a < 0) {
|
||||||
|
console.log(`${a} es un número negativo`);
|
||||||
|
} else if (a == 0) {
|
||||||
|
console.log(`${a} es cero`);
|
||||||
|
} else {
|
||||||
|
console.log(`${a} no es un número`);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
// if else if else
|
||||||
|
let weather = "sunny";
|
||||||
|
if (weather === "rainy") {
|
||||||
|
console.log("Necesitas un impermeable.");
|
||||||
|
} else if (weather === "cloudy") {
|
||||||
|
console.log("Puede que haga frío, necesitas una chaqueta.");
|
||||||
|
} else if (weather === "sunny") {
|
||||||
|
console.log("Sal tranquilo.");
|
||||||
|
} else {
|
||||||
|
console.log("No hay necesidad de un impermeable.");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Switch
|
||||||
|
|
||||||
|
Switch es una alternativa para **if else if else else**.
|
||||||
|
La instrucción switch comienza con una palabra clave _switch_ seguida de un paréntesis y un bloque de código. Dentro del bloque de código tendremos diferentes casos. El bloque de casos se ejecuta si el valor en el paréntesis de la declaración de cambio coincide con el valor del caso. La declaración de break es para terminar la ejecución. Esto para que la ejecución del código se detenga después de que se cumpla la condición. El bloque default se ejecuta si todos los casos no cumplen la condición.
|
||||||
|
|
||||||
|
```js
|
||||||
|
switch (caseValue) {
|
||||||
|
case 1:
|
||||||
|
// código
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
// código
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// código
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// código
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
let weather = "cloudy";
|
||||||
|
switch (weather) {
|
||||||
|
case "rainy":
|
||||||
|
console.log("Necesitas un impermeable.");
|
||||||
|
break;
|
||||||
|
case "cloudy":
|
||||||
|
console.log("Puede que haga frío, necesitas una chaqueta.");
|
||||||
|
break;
|
||||||
|
case "sunny":
|
||||||
|
console.log("Sal tranquilo.");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log("No hay necesidad de un impermeable.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Más Ejemplos switch
|
||||||
|
let dayUserInput = prompt("¿Qué día es hoy?");
|
||||||
|
let day = dayUserInput.toLowerCase();
|
||||||
|
|
||||||
|
switch (day) {
|
||||||
|
case "lunes":
|
||||||
|
console.log("Hoy es Lunes");
|
||||||
|
break;
|
||||||
|
case "martes":
|
||||||
|
console.log("Hoy es Martes");
|
||||||
|
break;
|
||||||
|
case "miércoles":
|
||||||
|
console.log("Hoy es Miércoles");
|
||||||
|
break;
|
||||||
|
case "jueves":
|
||||||
|
console.log("Hoy es Jueves");
|
||||||
|
break;
|
||||||
|
case "viernes":
|
||||||
|
console.log("Hoy es Viernes");
|
||||||
|
break;
|
||||||
|
case "sábado":
|
||||||
|
console.log("Hoy es Sábado");
|
||||||
|
break;
|
||||||
|
case "domingo":
|
||||||
|
console.log("Hoy es Domingo");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log("No es un día de semana.");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
// Ejemplos de condiciones en los casos
|
||||||
|
|
||||||
|
```js
|
||||||
|
let num = prompt("Ingrese un número");
|
||||||
|
switch (true) {
|
||||||
|
case num > 0:
|
||||||
|
console.log("El número es positivo");
|
||||||
|
break;
|
||||||
|
case num == 0:
|
||||||
|
console.log("El número es cero");
|
||||||
|
break;
|
||||||
|
case num < 0:
|
||||||
|
console.log("El número es negativo");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log("El valor ingresado no era un número");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Operadores Ternarios
|
||||||
|
|
||||||
|
Otra forma de escribir condicionales es usando operadores ternarios. Hemos cubierto esto en otras secciones, pero también deberíamos mencionarlo aquí.
|
||||||
|
|
||||||
|
```js
|
||||||
|
let isRaining = true;
|
||||||
|
isRaining
|
||||||
|
? console.log("Necesitas un impermeable.")
|
||||||
|
: console.log("No hay necesidad de un impermeable.");
|
||||||
|
```
|
||||||
|
|
||||||
|
🌕 Tienes una energía ilimitada. Acabas de completar los desafíos del día 4 y llevas cuatro pasos de tu camino hacia la grandeza. Ahora haz algunos ejercicios para tu cerebro y tus músculos.
|
||||||
|
|
||||||
|
## 💻 Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Obtenga la entrada del usuario usando el aviso ("Ingrese su edad:"). Si el usuario tiene 18 años o más, muestre el mensaje: 'Tiene la edad suficiente para conducir', pero si no tiene 18 años, brinde otro mensaje que indique que debe esperar la cantidad de años que necesita para cumplir 18.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Ingrese su edad: 30
|
||||||
|
Tiene la edad suficiente para conducir.
|
||||||
|
|
||||||
|
Ingrese su edad:15
|
||||||
|
Te faltan 3 años para conducir.
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Compara los valores de myAge y yourAge usando if... else. Según la comparación, registre el resultado en la consola indicando quién es mayor (tú o yo). Utilice prompt(“Ingrese su edad:”) para obtener la edad como entrada.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Ingrese su edad: 30
|
||||||
|
Eres 5 años mayor que yo.
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Si a es mayor que b, devuelve 'a es mayor que b'; de lo contrario, 'a es menor que b'. Trate de implementarlo de maneras diferentes
|
||||||
|
|
||||||
|
- Usando if else
|
||||||
|
- operador ternario.
|
||||||
|
|
||||||
|
```js
|
||||||
|
let a = 4;
|
||||||
|
let b = 3;
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
4 es mayor que 3
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Los números pares son divisibles por 2 y el resto es cero. ¿Cómo verificar si un número es par o no usando JavaScript?
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Ingrese un número: 2
|
||||||
|
2 es un número par
|
||||||
|
|
||||||
|
Ingrese un número: 9
|
||||||
|
9 es un número impar
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Escriba un código que pueda calificar a los estudiantes de acuerdo con sus puntajes:
|
||||||
|
- 80-100, A
|
||||||
|
- 70-89, B
|
||||||
|
- 60-69, C
|
||||||
|
- 50-59, D
|
||||||
|
- 0-49, F
|
||||||
|
1. Consulta si la temporada es Otoño, Invierno, Primavera o Verano.
|
||||||
|
Si la entrada del usuario es :
|
||||||
|
|
||||||
|
- Septiembre, Octubre o Noviembre, la temporada es Otoño.
|
||||||
|
- Diciembre, Enero o Febrero, la temporada es Invierno.
|
||||||
|
- Marzo, Abril o Mayo, la temporada es Primavera
|
||||||
|
- Junio, Julio o Agosto, la temporada es Verano
|
||||||
|
|
||||||
|
1. Compruebe si un día es un día de fin de semana o un día laborable. Su script tomará el día como entrada.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
¿Qué día es hoy? Sábado
|
||||||
|
El sábado es fin de semana.
|
||||||
|
|
||||||
|
¿Qué día es hoy? sábAdo
|
||||||
|
El sábado es fin de semana.
|
||||||
|
|
||||||
|
¿Qué día es hoy? Viernes
|
||||||
|
El viernes es un día laborable.
|
||||||
|
|
||||||
|
¿Qué día es hoy? ViErNes
|
||||||
|
El viernes es un día laborable.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. Escribe un programa que diga el número de días en un mes.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Introduce un mes: Enero
|
||||||
|
Enero tiene 31 días.
|
||||||
|
|
||||||
|
Introduce un mes: ENERO
|
||||||
|
enero tiene 31 dias
|
||||||
|
|
||||||
|
Introduce un mes: Febrero
|
||||||
|
Febrero tiene 28 días.
|
||||||
|
|
||||||
|
Introduce un mes: FEbrero
|
||||||
|
Febrero tiene 28 días.
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Escribe un programa que diga el número de días en un mes, ahora considera un año bisiesto.
|
||||||
|
|
||||||
|
🎉 FELICITACIONES ! 🎉
|
||||||
|
|
||||||
|
[<< Día 3](../dia_03_Booleanos_Operadores_Date/dia_03_Boleanos_Operadores_Date.md) | [Día 5 >>](../dia_05_Arreglos/dia_05_arreglos.md)
|
@ -0,0 +1,781 @@
|
|||||||
|
<div align="center">
|
||||||
|
<h1> 30 Días de JavaScript: Arrays</h1>
|
||||||
|
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
|
||||||
|
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
|
||||||
|
</a>
|
||||||
|
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
|
||||||
|
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<sub>Autor:
|
||||||
|
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
|
||||||
|
<small> January, 2020</small>
|
||||||
|
</sub>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[<< Día 4](../dia_04_Condicionales/dia_04_Condicionales.md) | [Día 6 >>](../06_Day_Loops/06_day_loops.md)
|
||||||
|
|
||||||
|
![Day 5](../images/banners/day_1_5.png)
|
||||||
|
|
||||||
|
- [📔 Día 5](#📔-día-5)
|
||||||
|
- [Arrays](#arrays)
|
||||||
|
- [Como crear un array vacío](#como-crear-un-array-vacío)
|
||||||
|
- [Como crear un array con valores](#como-crear-un-array-con-valores)
|
||||||
|
- [Creando un array usando split](#creando-un-array-usando-split)
|
||||||
|
- [Acceder a los elementos de un array usando el index](#acceder-a-los-elementos-de-un-array-usando-el-index)
|
||||||
|
- [Modificar elementos de array](#modificar-elementos-de-array)
|
||||||
|
- [Métodos para manipular arrays](#métodos-para-manipular-arrays)
|
||||||
|
- [Constructor de arrays](#constructor-de-arrays)
|
||||||
|
- [Creando valores estáticos con fill](#creando-valores-estáticos-con-fill)
|
||||||
|
- [Concatenación de arrays usando concat](#concatenación-de-arrays-usando-concat)
|
||||||
|
- [Obtener la longitud de array](#obtener-la-longitud-de-array)
|
||||||
|
- [Obtener el index de un elemento en un array](#obtener-el-index-de-un-elemento-en-un-array)
|
||||||
|
- [Obtener el último index de un elemento en un array](#obtener-el-último-index-de-un-elemento-en-un-array)
|
||||||
|
- [Comprobar un array](#comprobar-un-array)
|
||||||
|
- [Convertir array a string](#convertir-array-a-string)
|
||||||
|
- [Unir elementos de un array](#unir-elementos-de-un-array)
|
||||||
|
- [Cortar elementos de un array](#cortar-elementos-de-un-array)
|
||||||
|
- [Método splice en un array](#método-splice-en-un-array)
|
||||||
|
- [Agregar elementos a un array usando push](#agregar-elementos-a-un-array-usando-push)
|
||||||
|
- [Eliminar el último elemento usando pop](#eliminar-el-último-elemento-usando-pop)
|
||||||
|
- [Eliminar elemento al principio](#eliminar-elemento-al-principio)
|
||||||
|
- [Añade un elemento al inicio](#añade-un-elemento-al-inicio)
|
||||||
|
- [Invertir orden de un array](#invertir-orden-de-un-array)
|
||||||
|
- [Ordenar elementos en un array](#ordenar-elementos-en-un-array)
|
||||||
|
- [Array de arrays](#array-de-arrays)
|
||||||
|
- [💻 Ejercicios](#💻-ejercicios)
|
||||||
|
- [Ejercicios: Nivel 1](#ejercicios-nivel-1)
|
||||||
|
- [Ejercicios: Nivel 2](#ejercicios-nivel-2)
|
||||||
|
- [Ejercicios: Nivel 3](#ejercicios-nivel-3)
|
||||||
|
|
||||||
|
# 📔 Día 5
|
||||||
|
|
||||||
|
## Arrays
|
||||||
|
|
||||||
|
A diferencia de las variables, un array (matriz ó arreglo) puede almacenar _múltiples valores_.Cada valor en un array tiene un _index_ y cada index (índice) tiene _una referencia en una dirección de memoria_. Se puede acceder a cada valor usando sus _index_. El index de un array comienza desde _cero_, y el index del último elemento es menor a uno desde la longitud del array.
|
||||||
|
|
||||||
|
Un array es una colección de diferentes tipos de datos que están ordenados y son cambiables (modificables). Un array permite almacenar elementos duplicados y diferentes tipos de datos. Un array puede estar vacío o puede tener diferentes valores de diferentes tipos de datos.
|
||||||
|
|
||||||
|
### Como crear un array vacío
|
||||||
|
|
||||||
|
En JavaScript, podemos crear una array de diferentes maneras. Veamos diferentes formas de crear un array.
|
||||||
|
Es muy común usar _const_ en lugar de _let_ para declarar una variable array. Si está utilizando const, significa que no volverás a utilizar ese nombre de variable.
|
||||||
|
|
||||||
|
- Usando el constructor de arrays
|
||||||
|
|
||||||
|
```js
|
||||||
|
// sintaxis
|
||||||
|
const arr = Array();
|
||||||
|
// or
|
||||||
|
// let arr = new Array()
|
||||||
|
console.log(arr); // []
|
||||||
|
```
|
||||||
|
|
||||||
|
- Usando corchetes([])
|
||||||
|
|
||||||
|
```js
|
||||||
|
// sintaxis
|
||||||
|
// Esto es lo más recomendable para crear una lista vacía
|
||||||
|
const arr = [];
|
||||||
|
console.log(arr);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Como crear un array con valores
|
||||||
|
|
||||||
|
Array con valores iniciales. Usamos _length_ para encontrar la longitud del array.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [0, 3.14, 9.81, 37, 98.6, 100]; // array de números
|
||||||
|
const fruits = ["banana", "orange", "mango", "lemon"]; // array de strings, Fruits
|
||||||
|
const vegetables = ["Tomato", "Potato", "Cabbage", "Onion", "Carrot"]; // array de strings, vegetables
|
||||||
|
const animalProducts = ["milk", "meat", "butter", "yoghurt"]; // array de strings, products
|
||||||
|
const webTechs = ["HTML", "CSS", "JS", "React", "Redux", "Node", "MongDB"]; // array web, technology
|
||||||
|
const countries = ["Finland", "Denmark", "Sweden", "Norway", "Iceland"]; // array de strings, country
|
||||||
|
|
||||||
|
// Imprimimos el array y su longitud
|
||||||
|
|
||||||
|
console.log("Numbers:", numbers);
|
||||||
|
console.log("Number of numbers:", numbers.length);
|
||||||
|
|
||||||
|
console.log("Fruits:", fruits);
|
||||||
|
console.log("Number of fruits:", fruits.length);
|
||||||
|
|
||||||
|
console.log("Vegetables:", vegetables);
|
||||||
|
console.log("Number of vegetables:", vegetables.length);
|
||||||
|
|
||||||
|
console.log("Animal products:", animalProducts);
|
||||||
|
console.log("Number of animal products:", animalProducts.length);
|
||||||
|
|
||||||
|
console.log("Web technologies:", webTechs);
|
||||||
|
console.log("Number of web technologies:", webTechs.length);
|
||||||
|
|
||||||
|
console.log("Countries:", countries);
|
||||||
|
console.log("Number of countries:", countries.length);
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Numbers: [0, 3.14, 9.81, 37, 98.6, 100]
|
||||||
|
Number of numbers: 6
|
||||||
|
Fruits: ['banana', 'orange', 'mango', 'lemon']
|
||||||
|
Number of fruits: 4
|
||||||
|
Vegetables: ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']
|
||||||
|
Number of vegetables: 5
|
||||||
|
Animal products: ['milk', 'meat', 'butter', 'yoghurt']
|
||||||
|
Number of animal products: 4
|
||||||
|
Web technologies: ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB']
|
||||||
|
Number of web technologies: 7
|
||||||
|
Countries: ['Finland', 'Estonia', 'Denmark', 'Sweden', 'Norway']
|
||||||
|
Number of countries: 5
|
||||||
|
```
|
||||||
|
|
||||||
|
- Array puede tener elementos de diferentes tipos de datos
|
||||||
|
|
||||||
|
```js
|
||||||
|
const arr = [
|
||||||
|
"Asabeneh",
|
||||||
|
250,
|
||||||
|
true,
|
||||||
|
{ country: "Finland", city: "Helsinki" },
|
||||||
|
{ skills: ["HTML", "CSS", "JS", "React", "Python"] },
|
||||||
|
]; // arr contiene diferentes tipos de datos
|
||||||
|
console.log(arr);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creando un array usando split
|
||||||
|
|
||||||
|
Como hemos visto en la sección anterior, podemos dividir un string en diferentes posiciones y podemos cambiar a un array. Veamos los ejemplos a continuación
|
||||||
|
|
||||||
|
```js
|
||||||
|
let js = "JavaScript";
|
||||||
|
const charsInJavaScript = js.split("");
|
||||||
|
|
||||||
|
console.log(charsInJavaScript); // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"]
|
||||||
|
|
||||||
|
let companiesString = "Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon";
|
||||||
|
const companies = companiesString.split(",");
|
||||||
|
|
||||||
|
console.log(companies); // ["Facebook", " Google", " Microsoft", " Apple", " IBM", " Oracle", " Amazon"]
|
||||||
|
let txt =
|
||||||
|
"I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.";
|
||||||
|
const words = txt.split(" ");
|
||||||
|
|
||||||
|
console.log(words);
|
||||||
|
// el texto tiene caracteres especiales piensa cómo puedes obtener solo las palabras
|
||||||
|
// ["I", "love", "teaching", "and", "empowering", "people.", "I", "teach", "HTML,", "CSS,", "JS,", "React,", "Python"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Acceder a los elementos de un array usando el index
|
||||||
|
|
||||||
|
Accedemos a cada elemento en un array usando su index. El index de un array comienza desde 0. La siguiente imagen muestra claramente el index de cada elemento en un array
|
||||||
|
|
||||||
|
![arr index](../images/array_index.png)
|
||||||
|
|
||||||
|
```js
|
||||||
|
const fruits = ["banana", "orange", "mango", "lemon"];
|
||||||
|
let firstFruit = fruits[0]; // estamos accediendo al primer elemento usando su index
|
||||||
|
|
||||||
|
console.log(firstFruit); // banana
|
||||||
|
|
||||||
|
secondFruit = fruits[1];
|
||||||
|
console.log(secondFruit); // orange
|
||||||
|
|
||||||
|
let lastFruit = fruits[3];
|
||||||
|
console.log(lastFruit); // lemon
|
||||||
|
// El último index se puede calcular de la siguiente manera
|
||||||
|
|
||||||
|
let lastIndex = fruits.length - 1;
|
||||||
|
lastFruit = fruits[lastIndex];
|
||||||
|
|
||||||
|
console.log(lastFruit); // lemon
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [0, 3.14, 9.81, 37, 98.6, 100]; // set of numbers
|
||||||
|
|
||||||
|
console.log(numbers.length); // => para saber el tamaño de la array, que es 6
|
||||||
|
console.log(numbers); // -> [0, 3.14, 9.81, 37, 98.6, 100]
|
||||||
|
console.log(numbers[0]); // -> 0
|
||||||
|
console.log(numbers[5]); // -> 100
|
||||||
|
|
||||||
|
let lastIndex = numbers.length - 1;
|
||||||
|
console.log(numbers[lastIndex]); // -> 100
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const webTechs = [
|
||||||
|
"HTML",
|
||||||
|
"CSS",
|
||||||
|
"JavaScript",
|
||||||
|
"React",
|
||||||
|
"Redux",
|
||||||
|
"Node",
|
||||||
|
"MongoDB",
|
||||||
|
]; // Lista de tecnologías web
|
||||||
|
|
||||||
|
console.log(webTechs); // Todos los elementos del array
|
||||||
|
console.log(webTechs.length); // => para saber el tamaño de la array, que es 7
|
||||||
|
console.log(webTechs[0]); // -> HTML
|
||||||
|
console.log(webTechs[6]); // -> MongoDB
|
||||||
|
|
||||||
|
let lastIndex = webTechs.length - 1;
|
||||||
|
console.log(webTechs[lastIndex]); // -> MongoDB
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const countries = [
|
||||||
|
"Albania",
|
||||||
|
"Bolivia",
|
||||||
|
"Canada",
|
||||||
|
"Denmark",
|
||||||
|
"Ethiopia",
|
||||||
|
"Finland",
|
||||||
|
"Germany",
|
||||||
|
"Hungary",
|
||||||
|
"Ireland",
|
||||||
|
"Japan",
|
||||||
|
"Kenya",
|
||||||
|
]; // Lista de países
|
||||||
|
|
||||||
|
console.log(countries); // -> Todas los países del array
|
||||||
|
console.log(countries[0]); // -> Albania
|
||||||
|
console.log(countries[10]); // -> Kenya
|
||||||
|
|
||||||
|
let lastIndex = countries.length - 1;
|
||||||
|
console.log(countries[lastIndex]); // -> Kenya
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const shoppingCart = [
|
||||||
|
"Milk",
|
||||||
|
"Mango",
|
||||||
|
"Tomato",
|
||||||
|
"Potato",
|
||||||
|
"Avocado",
|
||||||
|
"Meat",
|
||||||
|
"Eggs",
|
||||||
|
"Sugar",
|
||||||
|
]; // Lista de productos alimenticios
|
||||||
|
|
||||||
|
console.log(shoppingCart); // -> todo el carrito de compras en array
|
||||||
|
console.log(shoppingCart[0]); // -> Milk
|
||||||
|
console.log(shoppingCart[7]); // -> Sugar
|
||||||
|
|
||||||
|
let lastIndex = shoppingCart.length - 1;
|
||||||
|
console.log(shoppingCart[lastIndex]); // -> Sugar
|
||||||
|
```
|
||||||
|
|
||||||
|
### Modificar elementos de array
|
||||||
|
|
||||||
|
Un array es mutable (modificable). Una vez que un array es creado, podemos modificar el contenido de los elementos del array.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers[0] = 10; // cambiando 1 en el índice 0 a 10
|
||||||
|
numbers[1] = 20; // cambiando 2 en el índice 1 a 20
|
||||||
|
|
||||||
|
console.log(numbers); // [10, 20, 3, 4, 5]
|
||||||
|
|
||||||
|
const countries = [
|
||||||
|
"Albania",
|
||||||
|
"Bolivia",
|
||||||
|
"Canada",
|
||||||
|
"Denmark",
|
||||||
|
"Ethiopia",
|
||||||
|
"Finland",
|
||||||
|
"Germany",
|
||||||
|
"Hungary",
|
||||||
|
"Ireland",
|
||||||
|
"Japan",
|
||||||
|
"Kenya",
|
||||||
|
];
|
||||||
|
|
||||||
|
countries[0] = "Afghanistan"; // Sustitución de Albania por Afganistán
|
||||||
|
let lastIndex = countries.length - 1;
|
||||||
|
countries[lastIndex] = "Korea"; // Sustitución de Kenia por Corea
|
||||||
|
console.log(countries);
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
["Afghanistan", "Bolivia", "Canada", "Denmark", "Ethiopia", "Finland", "Germany", "Hungary", "Ireland", "Japan", "Korea"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Métodos para manipular arrays
|
||||||
|
|
||||||
|
Existen diferentes métodos para manipular un array. Estos son algunos de los métodos disponibles para manejar arrays:_Array, length, concat, indexOf, slice, splice, join, toString, includes, lastIndexOf, isArray, fill, push, pop, shift, unshift_
|
||||||
|
|
||||||
|
#### Constructor de arrays
|
||||||
|
|
||||||
|
Array:Para crear un array.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const arr = Array(); // crea un array vacío
|
||||||
|
console.log(arr);
|
||||||
|
|
||||||
|
const eightEmptyValues = Array(8); // crea ocho valores vacíos
|
||||||
|
console.log(eightEmptyValues); // [empty x 8]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Creando valores estáticos con fill
|
||||||
|
|
||||||
|
fill: Rellena todos los elementos del array con un valor estático.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const arr = Array(); // crea un array vacío
|
||||||
|
console.log(arr);
|
||||||
|
|
||||||
|
const eightXvalues = Array(8).fill("X"); // crea ocho valores de elementos llenos de 'X'
|
||||||
|
console.log(eightXvalues); // ['X', 'X','X','X','X','X','X','X']
|
||||||
|
|
||||||
|
const eight0values = Array(8).fill(0); // crea ocho valores de elementos llenos de '0'
|
||||||
|
console.log(eight0values); // [0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
|
||||||
|
const four4values = Array(4).fill(4); // crea 4 valores de elementos llenos de '4'
|
||||||
|
console.log(four4values); // [4, 4, 4, 4]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Concatenación de arrays usando concat
|
||||||
|
|
||||||
|
concat:Para concatenar dos arrays.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const firstList = [1, 2, 3];
|
||||||
|
const secondList = [4, 5, 6];
|
||||||
|
const thirdList = firstList.concat(secondList);
|
||||||
|
|
||||||
|
console.log(thirdList); // [1, 2, 3, 4, 5, 6]
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const fruits = ["banana", "orange", "mango", "lemon"]; // array de fruits
|
||||||
|
const vegetables = ["Tomato", "Potato", "Cabbage", "Onion", "Carrot"]; // array de vegetables
|
||||||
|
const fruitsAndVegetables = fruits.concat(vegetables); // concatena los dos arrays
|
||||||
|
|
||||||
|
console.log(fruitsAndVegetables);
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
["banana", "orange", "mango", "lemon", "Tomato", "Potato", "Cabbage", "Onion", "Carrot"]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Obtener la longitud de array
|
||||||
|
|
||||||
|
Length:Para saber el tamaño del array
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
console.log(numbers.length); // -> 5 es el tamaño del array
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Obtener el index de un elemento en un array
|
||||||
|
|
||||||
|
indexOf:Para verificar si un elemento existe en un array. Si existe, devuelve el index, de lo contrario devuelve -1.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
|
||||||
|
console.log(numbers.indexOf(5)); // -> 4
|
||||||
|
console.log(numbers.indexOf(0)); // -> -1
|
||||||
|
console.log(numbers.indexOf(1)); // -> 0
|
||||||
|
console.log(numbers.indexOf(6)); // -> -1
|
||||||
|
```
|
||||||
|
|
||||||
|
Comprobar si un elemento existe en un array.
|
||||||
|
|
||||||
|
- Comprobar elementos en una lista
|
||||||
|
|
||||||
|
```js
|
||||||
|
// vamos a comprobar si existe banana en el array
|
||||||
|
|
||||||
|
const fruits = ["banana", "orange", "mango", "lemon"];
|
||||||
|
let index = fruits.indexOf("banana"); // 0
|
||||||
|
|
||||||
|
if (index === -1) {
|
||||||
|
console.log("Esta fruta no existe en el array.");
|
||||||
|
} else {
|
||||||
|
console.log("Esta fruta existe en el array.");
|
||||||
|
}
|
||||||
|
// Esta fruta existe en el array.
|
||||||
|
|
||||||
|
// we can use also ternary here
|
||||||
|
index === -1
|
||||||
|
? console.log("Esta fruta no existe en el array.")
|
||||||
|
: console.log("Esta fruta existe en el array.");
|
||||||
|
|
||||||
|
// let us check if an avocado exist in the array
|
||||||
|
let indexOfAvocado = fruits.indexOf("avocado"); // -1, if the element not found index is -1
|
||||||
|
if (indexOfAvocado === -1) {
|
||||||
|
console.log("Esta fruta no existe en el array.");
|
||||||
|
} else {
|
||||||
|
console.log("Esta fruta existe en el array.");
|
||||||
|
}
|
||||||
|
// Esta fruta no existe en el array.
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Obtener el último index de un elemento en un array
|
||||||
|
|
||||||
|
lastIndexOf: Da la posición del último elemento en el array. Si existe, devuelve el index, de lo contrario, devuelve -1.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5, 3, 1, 2];
|
||||||
|
|
||||||
|
console.log(numbers.lastIndexOf(2)); // 7
|
||||||
|
console.log(numbers.lastIndexOf(0)); // -1
|
||||||
|
console.log(numbers.lastIndexOf(1)); // 6
|
||||||
|
console.log(numbers.lastIndexOf(4)); // 3
|
||||||
|
console.log(numbers.lastIndexOf(6)); // -1
|
||||||
|
```
|
||||||
|
|
||||||
|
includes:Para verificar si un elemento existe en un array. Si existe, devuelve true, de lo contrario devuelve false.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
|
||||||
|
console.log(numbers.includes(5)); // true
|
||||||
|
console.log(numbers.includes(0)); // false
|
||||||
|
console.log(numbers.includes(1)); // true
|
||||||
|
console.log(numbers.includes(6)); // false
|
||||||
|
|
||||||
|
const webTechs = [
|
||||||
|
"HTML",
|
||||||
|
"CSS",
|
||||||
|
"JavaScript",
|
||||||
|
"React",
|
||||||
|
"Redux",
|
||||||
|
"Node",
|
||||||
|
"MongoDB",
|
||||||
|
]; // Lista de tecnologías web
|
||||||
|
|
||||||
|
console.log(webTechs.includes("Node")); // true
|
||||||
|
console.log(webTechs.includes("C")); // false
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Comprobar un array
|
||||||
|
|
||||||
|
Array.isArray:Para verificar si el tipo de dato en un array
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
console.log(Array.isArray(numbers)); // true
|
||||||
|
|
||||||
|
const number = 100;
|
||||||
|
console.log(Array.isArray(number)); // false
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Convertir array a string
|
||||||
|
|
||||||
|
toString:Convierte un array a string
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
console.log(numbers.toString()); // 1,2,3,4,5
|
||||||
|
|
||||||
|
const names = ["Asabeneh", "Mathias", "Elias", "Brook"];
|
||||||
|
console.log(names.toString()); // Asabeneh,Mathias,Elias,Brook
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Unir elementos de un array
|
||||||
|
|
||||||
|
join: Se usa para unir los elementos del array, el argumento que pasamos en el método join se unirá en array y regresará como una cadena. De forma predeterminada, se une con una coma, pero podemos pasar diferentes parámetros de string que se pueden unir entre los elementos.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
console.log(numbers.join()); // 1,2,3,4,5
|
||||||
|
|
||||||
|
const names = ["Asabeneh", "Mathias", "Elias", "Brook"];
|
||||||
|
|
||||||
|
console.log(names.join()); // Asabeneh,Mathias,Elias,Brook
|
||||||
|
console.log(names.join("")); //AsabenehMathiasEliasBrook
|
||||||
|
console.log(names.join(" ")); //Asabeneh Mathias Elias Brook
|
||||||
|
console.log(names.join(", ")); //Asabeneh, Mathias, Elias, Brook
|
||||||
|
console.log(names.join(" # ")); //Asabeneh # Mathias # Elias # Brook
|
||||||
|
|
||||||
|
const webTechs = [
|
||||||
|
"HTML",
|
||||||
|
"CSS",
|
||||||
|
"JavaScript",
|
||||||
|
"React",
|
||||||
|
"Redux",
|
||||||
|
"Node",
|
||||||
|
"MongoDB",
|
||||||
|
]; // Lista de tecnologías web
|
||||||
|
|
||||||
|
console.log(webTechs.join()); // "HTML,CSS,JavaScript,React,Redux,Node,MongoDB"
|
||||||
|
console.log(webTechs.join(" # ")); // "HTML # CSS # JavaScript # React # Redux # Node # MongoDB"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Cortar elementos de un array
|
||||||
|
|
||||||
|
Slice: Para cortar varios elementos en el rango. Toma dos parámetros: posición inicial y final. Puede no incluir la posición final
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
|
||||||
|
console.log(numbers.slice()); // -> copia todos los elementos
|
||||||
|
console.log(numbers.slice(0)); // -> copia todos los elementos
|
||||||
|
console.log(numbers.slice(0, numbers.length)); // copia todos los elementos
|
||||||
|
console.log(numbers.slice(1, 4)); // -> [2,3,4] // no incluye la posición final
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Método splice en un array
|
||||||
|
|
||||||
|
Splice: Toma tres parámetros: posición inicial, número de elementos a eliminar y cantidad de elementos que se agregarán.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers.splice();
|
||||||
|
console.log(numbers); // -> elimina todos los elementos
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers.splice(0, 1);
|
||||||
|
console.log(numbers); // elimina el primer elemento
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5, 6];
|
||||||
|
numbers.splice(3, 3, 7, 8, 9);
|
||||||
|
console.log(numbers.splice(3, 3, 7, 8, 9)); // -> [1, 2, 3, 7, 8, 9] //elimina tres elementos y reemplaza tres elementos
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Agregar elementos a un array usando push
|
||||||
|
|
||||||
|
Push: agrega elementos al final. Para agregar un elemento al final de un array existente, usamos el método push.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// syntax
|
||||||
|
const arr = ["item1", "item2", "item3"];
|
||||||
|
arr.push("new item");
|
||||||
|
console.log(arr);
|
||||||
|
// ['item1', 'item2','item3','new item']
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers.push(6);
|
||||||
|
console.log(numbers); // -> [1,2,3,4,5,6]
|
||||||
|
|
||||||
|
numbers.pop(); // -> eliminar un elemento del final
|
||||||
|
console.log(numbers); // -> [1,2,3,4,5]
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
let fruits = ["banana", "orange", "mango", "lemon"];
|
||||||
|
fruits.push("apple");
|
||||||
|
console.log(fruits); // ['banana', 'orange', 'mango', 'lemon', 'apple']
|
||||||
|
|
||||||
|
fruits.push("lime");
|
||||||
|
console.log(fruits); // ['banana', 'orange', 'mango', 'lemon', 'apple', 'lime']
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Eliminar el último elemento usando pop
|
||||||
|
|
||||||
|
pop: Elimina el elemento final.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers.pop(); // -> eliminar un elemento del final
|
||||||
|
console.log(numbers); // -> [1,2,3,4]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Eliminar elemento al principio
|
||||||
|
|
||||||
|
shift: Eliminación de un elemento de un array al comienzo de un array.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers.shift(); // -> elimina un elemento del principio
|
||||||
|
console.log(numbers); // -> [2,3,4,5]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Añade un elemento al inicio
|
||||||
|
|
||||||
|
unshift: Agrega un elemento al inicio del array
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers.unshift(0); // -> Añadir un elemento al inicio
|
||||||
|
console.log(numbers); // -> [0,1,2,3,4,5]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Invertir orden de un array
|
||||||
|
|
||||||
|
reverse: invertir el orden de un array.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const numbers = [1, 2, 3, 4, 5];
|
||||||
|
numbers.reverse(); // -> reverse array order
|
||||||
|
console.log(numbers); // [5, 4, 3, 2, 1]
|
||||||
|
|
||||||
|
numbers.reverse();
|
||||||
|
console.log(numbers); // [1, 2, 3, 4, 5]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Ordenar elementos en un array
|
||||||
|
|
||||||
|
sort: Ordena los elementos de un array en orden ascendente. Sort toma una función call back, Veremos cómo usamos sort con una función call back en las próximas secciones.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const webTechs = [
|
||||||
|
"HTML",
|
||||||
|
"CSS",
|
||||||
|
"JavaScript",
|
||||||
|
"React",
|
||||||
|
"Redux",
|
||||||
|
"Node",
|
||||||
|
"MongoDB",
|
||||||
|
];
|
||||||
|
|
||||||
|
webTechs.sort();
|
||||||
|
console.log(webTechs); // ["CSS", "HTML", "JavaScript", "MongoDB", "Node", "React", "Redux"]
|
||||||
|
|
||||||
|
webTechs.reverse(); // after sorting we can reverse it
|
||||||
|
console.log(webTechs); // ["Redux", "React", "Node", "MongoDB", "JavaScript", "HTML", "CSS"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Array de arrays
|
||||||
|
|
||||||
|
Un array puede almacenar diferentes tipos de datos, incluido un array en sí mismo. Vamos a crear un array de arrays
|
||||||
|
|
||||||
|
```js
|
||||||
|
const firstNums = [1, 2, 3];
|
||||||
|
const secondNums = [1, 4, 9];
|
||||||
|
|
||||||
|
const arrayOfArray = [
|
||||||
|
[1, 2, 3],
|
||||||
|
[1, 2, 3],
|
||||||
|
];
|
||||||
|
console.log(arrayOfArray[0]); // [1, 2, 3]
|
||||||
|
|
||||||
|
const frontEnd = ["HTML", "CSS", "JS", "React", "Redux"];
|
||||||
|
const backEnd = ["Node", "Express", "MongoDB"];
|
||||||
|
const fullStack = [frontEnd, backEnd];
|
||||||
|
console.log(fullStack); // [["HTML", "CSS", "JS", "React", "Redux"], ["Node", "Express", "MongoDB"]]
|
||||||
|
console.log(fullStack.length); // 2
|
||||||
|
console.log(fullStack[0]); // ["HTML", "CSS", "JS", "React", "Redux"]
|
||||||
|
console.log(fullStack[1]); // ["Node", "Express", "MongoDB"]
|
||||||
|
```
|
||||||
|
|
||||||
|
🌕 Tienes una energía ilimitada. Acabas de completar los desafíos del día 5 y llevas cinco pasos de tu camino hacia la grandeza. Ahora haz algunos ejercicios para tu cerebro y tus músculos.
|
||||||
|
|
||||||
|
## 💻 Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
```js
|
||||||
|
const countries = [
|
||||||
|
"Albania",
|
||||||
|
"Bolivia",
|
||||||
|
"Canada",
|
||||||
|
"Denmark",
|
||||||
|
"Ethiopia",
|
||||||
|
"Finland",
|
||||||
|
"Germany",
|
||||||
|
"Hungary",
|
||||||
|
"Ireland",
|
||||||
|
"Japan",
|
||||||
|
"Kenya",
|
||||||
|
];
|
||||||
|
|
||||||
|
const webTechs = [
|
||||||
|
"HTML",
|
||||||
|
"CSS",
|
||||||
|
"JavaScript",
|
||||||
|
"React",
|
||||||
|
"Redux",
|
||||||
|
"Node",
|
||||||
|
"MongoDB",
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Declara un array _vacío_.
|
||||||
|
2. Declara un array com mas de 5 elementos.
|
||||||
|
3. Encuentra la longitud de tu array.
|
||||||
|
4. Obtenga el primer elemento, el elemento del medio y el último elemento de un array.
|
||||||
|
5. Declara un array llamado _mixedDataTypes_, coloque diferentes tipos de datos en el array y encuentre la longitud del array. El tamaño del array debe ser mayor que 5.
|
||||||
|
6. Declare un variable array de nombre _itCompanies_ y asignarles valores iniciales Facebook, Google, Microsoft, Apple, IBM, Oracle y Amazon.
|
||||||
|
7. Imprima el array usando _console.log()_.
|
||||||
|
8. Imprima el número de empresas en el array.
|
||||||
|
9. Imprime la primer empresa , la intermedia y la última empresa
|
||||||
|
10. Imprime cada empresa.
|
||||||
|
11. Cambie el nombre de cada empresa a mayúsculas uno por uno e imprímalos.
|
||||||
|
12. Imprime el array como una oración: Facebook, Google, Microsoft, Apple, IBM, Oracle y Amazon son grandes empresas de TI.
|
||||||
|
13. Compruebe si existe una determinada empresa en el array itCompanies. Si existe, retorna la empresa; de lo contrario, retorna la empresa _no existe_
|
||||||
|
14. Filtre las empresas que tienen más de una 'o' sin el método _filter()_
|
||||||
|
15. Ordene el array usando el método _sort()_
|
||||||
|
16. Invierte la array usando el método _reverse()_
|
||||||
|
17. Cortar las primeras 3 empresas del array
|
||||||
|
18. Cortar las últimas 3 empresas del array
|
||||||
|
19. Cortar la empresa o empresas intermedias de TI del array
|
||||||
|
20. Eliminar la primera empresa de TI del array
|
||||||
|
21. Eliminar la empresa o empresas intermedias de TI del array
|
||||||
|
22. Elimine la última empresa de TI del array
|
||||||
|
23. Eliminar todas las empresas de TI
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Cree un archivo de countries.js separado y almacene el array de países en este archivo, cree un archivo separado web_techs.js y almacene el array de webTechs en este archivo. Acceda a ambos archivos en el archivo main.js
|
||||||
|
1. Primero elimine todos los signos de puntuación y cambie de string a array y cuente el número de palabras en el array
|
||||||
|
|
||||||
|
```js
|
||||||
|
let text =
|
||||||
|
"I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.";
|
||||||
|
console.log(words);
|
||||||
|
console.log(words.length);
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
["I", "love", "teaching", "and", "empowering", "people", "I", "teach", "HTML", "CSS", "JS", "React", "Python"]
|
||||||
|
|
||||||
|
13
|
||||||
|
```
|
||||||
|
|
||||||
|
1. En el siguiente carrito de compras agregue, elimine, edite artículos
|
||||||
|
|
||||||
|
```js
|
||||||
|
const shoppingCart = ["Milk", "Coffee", "Tea", "Honey"];
|
||||||
|
```
|
||||||
|
|
||||||
|
- Agregue 'Meat' al comienzo de su carrito de compras si aún no se ha agregado
|
||||||
|
- Agregue 'Sugar' al final de su carrito de compras si aún no se ha agregado
|
||||||
|
- Elimine 'Honey' si es alérgico a la miel (honey)
|
||||||
|
- Modificar Tea a 'Green Tea'
|
||||||
|
|
||||||
|
1. En el array de países, verifique si 'Ethiopia' existe en el array si existe, imprima 'ETHIOPIA'. Si no existe agregar a la lista de países.
|
||||||
|
1. En el array webTechs, verifique si Sass existe en el array y si existe, imprima 'Sass es un preproceso de CSS'. Si no existe, agregue Sass al array e imprima el array.
|
||||||
|
1. Concatene las siguientes dos variables y guardelas en una variable fullStack.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const frontEnd = ["HTML", "CSS", "JS", "React", "Redux"];
|
||||||
|
const backEnd = ["Node", "Express", "MongoDB"];
|
||||||
|
|
||||||
|
console.log(fullStack);
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. El siguiente es un array de 10 edades de estudiantes:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const ages = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24]
|
||||||
|
```
|
||||||
|
|
||||||
|
- Ordene el array y encuentre la edad mínima y máxima
|
||||||
|
- Encuentre la edad media (un elemento intermedio o dos elementos intermedios divididos por dos)
|
||||||
|
- Encuentre la edad promedio (todos los elementos divididos por el número de elementos)
|
||||||
|
- Encuentre el rango de las edades (max menos min)
|
||||||
|
- Compare el valor de (mín - promedio) y (máx - promedio), use el método _abs()_
|
||||||
|
|
||||||
|
1.Cortar los diez primeros países de la [array de países](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js)
|
||||||
|
|
||||||
|
1. Encuentre el país o países de en medio en el [array de países](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js)
|
||||||
|
1. Divide el array de países en dos arrays iguales si es par. Si el array de países no es par, agregue un país más para la primera mitad.
|
||||||
|
|
||||||
|
🎉 ¡Felicitaciones! 🎉
|
||||||
|
|
||||||
|
[<< Day 4](../dia_04_Condicionales/dia_04_Condicionales.md) | [Day 6 >>](../06_Day_Loops/06_day_loops.md)
|
Loading…
Reference in new issue