Skip to content

Commit

Permalink
code clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
thamaragerigr committed Aug 27, 2020
1 parent 581a2b2 commit 45378c7
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 93 deletions.
115 changes: 61 additions & 54 deletions Ejercicios de código/EjerciciosPracticos.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Ejercicios Prácticos

1. **'Primero y último'**: Crea una función que dada un _string_, remueva el primer y último caracter.
1.**Primero y último**: Crea una función que dada un _string_, remueva el primer y último caracter.

_Ejemplo:_

Expand Down Expand Up @@ -31,13 +31,14 @@ _Ejemplo:_
const encuentraElMasPequeño = (arr) => Math.min.apply(null, arr)

</p>
</details>

> Nota: _Math.min_ no acepta matrices, por lo que se le debe agregar _apply_. El primer argumento de apply hace referencia al _this_ dentro de esa función. Pero como en este caso no es necesario usarlo, se puede pasar `null` o `undefined` y actuará igual.
> 💡 **Nota**: _Math.min_ no acepta matrices, por lo que se le debe agregar _apply_. El primer argumento de apply hace referencia al _this_ dentro de esa función. Pero como en este caso no es necesario usarlo, se puede pasar `null` o `undefined` y actuará igual.
</details>

[Fuente aquí](https://www.codewars.com/kata/55a2d7ebe362935a210000b2)

3. **Sumando**: Escribe una función que encuentre el resultado de sumar cada número del 1 al parámetro dado.
3.**Sumando**: Escribe una función que encuentre el resultado de sumar cada número del 1 al parámetro dado.

_Ejemplo:_

Expand All @@ -53,13 +54,13 @@ _Ejemplo:_
for (let i = 1; i <= num; i++) result += i;
return result;
}

</p>
</details>

[Fuente aquí](https://www.codewars.com/kata/55d24f55d7dd296eb9000030)

4. **Siglo**: Escribe una función que devuelva el siglo del año dado.
4.**Siglo**: Escribe una función que devuelva el siglo del año dado.

_Ejemplo:_

Expand All @@ -68,17 +69,18 @@ _Ejemplo:_
<details>
<summary>Solución:</summary>
<p>

const sigloDeAño = año => Math.ceil(año/100)
</p>
</details>

> Nota: _Math.ceil_ lo que hace es redondear el número dado, luego lo dividimos entre 100 para que nos de el siglo
</p>

> 💡 Nota: _Math.ceil_ lo que hace es redondear el número dado, luego lo dividimos entre 100 para que nos de el siglo
</details>

[Fuente aquí](https://www.codewars.com/kata/5a3fe3dde1ce0e8ed6000097)

5. **Contando ovejas**: Dado un array, escribe un programa que devuelva el número de ovejas presentes (true).
5.**Contando ovejas**: Dado un array, escribe un programa que devuelva el número de ovejas presentes (true).

_Ejemplo:_

Expand All @@ -88,30 +90,31 @@ _Ejemplo:_
true, false, false, true ,
true, true, true, true ,
false, false, true, true]

<details>
<summary>Solución:</summary>
<p>

const contandoOvejas = rebaño => rebaño.filter(Boolean).length
</p>
</details>

> Nota: Usamos la palabra `Boolean` para preguntar si es un `true`, el filter nos devuelve un array nuevo excluyendo los `false` y finalmente `.length` para saber la cantidad de ovejas presentes.
</p>

> 💡 **Nota**: Usamos la palabra `Boolean` para preguntar si es un `true`, el filter nos devuelve un array nuevo excluyendo los `false` y finalmente `.length` para saber la cantidad de ovejas presentes.
</details>

[Fuente aquí](https://www.codewars.com/kata/54edbc7200b811e956000556)

6. **Operaiones simples**: Crea una función que acepte dos valores y un símbolo para ejecutar las operaciones matemáticas básicas.
6.**Operaiones simples**: Crea una función que acepte dos valores y un símbolo para ejecutar las operaciones matemáticas básicas.

_Ejemplo:_

operacionBasica('*', 5, 5) // 25

<details>
<summary>Solución 1:</summary>
<p>

const operacionBasica = (operacion, valor1, valor2) => {
switch (operacion) {
case '+':
Expand All @@ -130,19 +133,20 @@ _Ejemplo:_
}
}

</p>
</p>
</details>

<details>
<summary>Solución 2:</summary>
<p>

const operacionBasica = (operacion, valor1, valor2) => eval(valor1+operacion+valor2)

</p>
</details>
</p>

> La función _eval_ evalúa un string y lo ejecuta.
> La función _eval_ evalúa un string y lo ejecuta.
</details>

[Fuente aquí](https://www.codewars.com/kata/57356c55867b9b7a60000bd7)

Expand All @@ -155,15 +159,15 @@ _Ejemplo:_
<details>
<summary>Solución:</summary>
<p>

const esDivisible = ( num, x, y ) => ( num % x === 0 && num % y === 0 ) ? true : false

</p>
</p>
</details>

[Fuente aquí](https://www.codewars.com/kata/5545f109004975ea66000086)

8. **Par o impar**: Crea una función devuelva si un número es par o impar
8.**Par o impar**: Crea una función devuelva si un número es par o impar

_Ejemplo:_

Expand All @@ -172,10 +176,10 @@ _Ejemplo:_
<details>
<summary>Solución:</summary>
<p>

const parOimpar = num => ( num % 2 === 0 ) ? 'Par' : 'Impar'

</p>
</p>
</details>

[Fuente aquí](https://www.codewars.com/kata/53da3dbb4a5168369a0000fe)
Expand All @@ -185,11 +189,11 @@ _Ejemplo:_
_Ejemplo:_

"¡Esto es un ejemplo!" ==> "¡otsE se nu !olpmeje"

<details>
<summary>Solución:</summary>
<p>

const invertirPalabras = str => {
return str.split(' ').map(word => word.split('').reverse().join('')).join(' ')
}
Expand Down Expand Up @@ -221,14 +225,12 @@ _Ejemplo:_
}
}

</p>
</p>
</details>


<details>
<summary>Solución 2:</summary>
<p>
const FizzBuzz = () => {
for (i = 1; i <= 100; i++) {
let mensaje = ''
Expand All @@ -252,14 +254,14 @@ _Ejemplo:_
}
}

</p>
</p>
</details>

<details>
<summary>Solución 3:</summary>
> Esta es la opción más mantenible, ya que permite que puedas agregar más posibles casos en un futuro.

<p>

const isMultiple = (num, mod) => num % mod === 0

const FizzBuzz = () => {
Expand All @@ -285,12 +287,14 @@ _Ejemplo:_
}
}

</p>
</p>

> Esta es la opción más mantenible, ya que permite que puedas agregar más posibles casos en un futuro.
</details>
[Fuente aquí](https://www.hackdoor.io/articles/96Nn4Q4E/about-coding-the-fizzbuzz-interview-question)

11. **Suma de múltiplos**: Crea una función devuelva sla suma de todos los múltiplos de 3 y 5, contando desde el parámetro dado
11. **Suma de múltiplos**: Crea una función devuelva las suma de todos los múltiplos de 3 y 5, contando desde el parámetro dado

_Ejemplo:_

Expand All @@ -299,7 +303,7 @@ _Ejemplo:_
<details>
<summary>Solución 1:</summary>
<p>

const findSum = (n) => {
let result = 0
for (let i = 0; i <= n; i++) {
Expand All @@ -310,14 +314,14 @@ _Ejemplo:_
return result
}

</p>
</p>
</details>

<details>
<summary>Solución 2:</summary>
> Más mantenible a largo plazo porque podemos agregar más casos en un futuro de manera mas fácil.

<p>

const isMultiple = (num, mod) => num % mod === 0

const findSum = (n) => {
Expand All @@ -336,7 +340,9 @@ _Ejemplo:_
return result
}

</p>
</p>

> Más mantenible a largo plazo porque podemos agregar más casos en un futuro de manera mas fácil.
</details>
[Fuente aquí](https://www.codewars.com/kata/57f36495c0bb25ecf50000e7/train/javascript)
Expand Down Expand Up @@ -447,14 +453,15 @@ _Código:_
for (i = 0; i < length; i++) {
// does nothing
}
{
{
// a simple block
numbers.push(i + 1);
}

numbers; // => [5]

Lo que en realidad sucede es que `i` aumenta 4 veces y luego se pasa a la parte del código en donde se agrega al array de `numbers`, resultando en 5. </p>
Lo que en realidad sucede es que `i` aumenta 4 veces y luego se pasa a la parte del código en donde se agrega al array de `numbers`, resultando en 5. </p>

</details>

[Fuente aquí](https://dmitripavlutin.com/simple-but-tricky-javascript-interview-questions/)
Expand All @@ -469,7 +476,7 @@ _Código:_
}

arrayFromValue(10); // => ???

<details>
<summary>Solución:</summary>
<p>
Expand All @@ -481,7 +488,7 @@ _Código:_
}

arrayFromValue(10); // => undefined

</p>
</details>

Expand Down Expand Up @@ -513,13 +520,12 @@ Dada una cadena, detecta si es o no un pangrama. Devuelve True si es así, False
const processedString = [...new Set(string.toLowerCase().split(' ').join(''))].sort().join('')
console.log(abc===processedString)
}

</p>
</details>

[Fuente aquí](https://www.codewars.com/kata/545cedaa9943f7fe7b000048)


18. **esPrimo** - Crea una función que devuelva `true`o `false` dependiendo del número que pases como parámetro. Ejemplo:

esPrimo(0) // false
Expand Down Expand Up @@ -547,7 +553,7 @@ Dada una cadena, detecta si es o no un pangrama. Devuelve True si es así, False
inputArray = [3, 6, -2, -5, 7, 3]
adjacentElementsProduct(inputArray) = 21
//7 y 3 producen el producto más mayor.

<details>
<summary>Solución:</summary>
<p>
Expand Down Expand Up @@ -599,7 +605,8 @@ Dada una cadena, detecta si es o no un pangrama. Devuelve True si es así, False
}

numberOfCharacters('woaw', 'W') // 2

</p>
</details>

[Fuente aquí](https://buttondown.email/cassidoo/archive/8fddad12-c45e-44f6-bda8-fd6adcf18dc4)
[Fuente aquí](https://buttondown.email/cassidoo/archive/8fddad12-c45e-44f6-bda8-fd6adcf18dc4)
39 changes: 0 additions & 39 deletions JavaScript/PreguntasJavaScript.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,42 +155,3 @@ console.log(x); // 1
## Explica cómo funciona la herencia de prototipos

Todos los objetos en JS poseen una propiedad `_proto_`, la cual hace referencia a otro objeto, el cual es llamado el prototipo del objeto. Cuando se accede a una propiedad a través de un objeto y no es encontrada, se buscará en el `_proto_` del objeto hasta conseguir lo que esta buscando.

<!--
## ¿Qué son `closures`? ¿Por qué y para qué usarlas?
## Funciones normales vs de flecha
## Async vs defer
## == vs ===
## setTimeout vs setInterval
## different DOM API’s
## DOM vs Virtual DOM (React)
## ¿Cómo funciona el event loop?
## Difference between call, bind and apply
## Explain Promise
## What is variable hoisting
## Difference between document.ready(){} and window.onload(){}
## Callback vs Promise
## Prototypal inheritance
## Write polyfill for Filter, Reduce, Promise
## CORS
## Can you describe the main difference between a .forEach loop and a .map() loop and why you would pick one versus the other?
## What's a typical use case for anonymous functions?
## Difference between: function Person(){}, var person = Person(), and var person = new Person()?
## Explain Ajax in as much detail as possible.
## What are the advantages and disadvantages of using Ajax?
## SEO
## What are the pros and cons of using Promises instead of callbacks?
## Explain the difference between synchronous and asynchronous functions.
## What is the definition of a higher-order function?
## Can you name two programming paradigms important for JavaScript app developers?
## What is functional programming?
## What is the difference between classical inheritance and prototypal inheritance?
## When is classical inheritance an appropriate choice?
## When is prototypal inheritance an appropriate choice?
## What are two-way data binding and one-way data flow, and how are they different?
## What are the pros and cons of monolithic vs microservice architectures?
## What is asynchronous programming, and why is it important in JavaScript?
## What kind of SQL statement retrieves data from a table
## Why is caching used to increase read performance?
## Which type of testing would best measure which version of a landing page results in more sing-ups?
-->

0 comments on commit 45378c7

Please sign in to comment.