tanrax / soy-un-buen-programador-js

Juego con retos sencillos de JavaScript para probarte a ti mismo que sabes lo que haces
11 stars 2 forks source link

Resolución de ejercicios #1

Open taipe1 opened 2 years ago

taipe1 commented 2 years ago

// Todas las variables deben ser constantes. No uses ni let ni var, solo const. // Prohibido usar los bucles: while y for.

// Reto 1 // Crea un Array con números de 0 al 10.

function crearArray(n){
  return new Array(n).fill(1)
         .reduce((arr, valorActual ,i) => {arr.push(i)
         return arr
         },[]) ;
}crearArray
console.log(crearArray(11))

// A partir del siguiente Array. // Elimina el elemento que se encuentra en la posición 3. Insisto: posición 3, no por el string "PHP". //splice(posicion, cantidad)

miLista = ["Lisp", "Clojure", "Haskell", "PHP", "Racket"]
miLista.splice(3,1)
console.log(miLista)

// A partir del siguiente Array. // Obtén el número de elementos que tienen una letra "s" en su nombre. // Si quieres subir el nivel, no uses "length".

miLista = ["Lisp", "Clojure", "Haskell", "Elm", "Racket", "Swift", "Erlang", "Scala"]
const nombreS = miLista
              .map(lista => lista.toLowerCase())
              .filter(elem => elem.includes('s'))
console.log(nombreS)

// Crea una función que elimine los acentos de un string. Prohibido usar Regex o replace. //lo intente

// Crea una Array que muestre los primeros 10 números de la secuencia de Fibonacci. // ¿Subimos el nivel? Crea una función donde le indiques la cantidad de cantidad de números que quieres en la secuencia.

const secuenciaFibonacci = (n) => {
  return new Array(n)
                 .fill(1)
                 .reduce((acumulador, actual, indice) => {
                  acumulador.push((indice<=1)?indice:acumulador[indice-2]+acumulador[indice-1])
                  return acumulador
                  },[])
}
console.log(secuenciaFibonacci(10))
tanrax commented 2 years ago

Guau!! Felicidades por hacer los retos, incluso adelantarte jajaj Te voy comentando uno por uno.

tanrax commented 2 years ago

Reto 1

Lo puedes simplificar de 2 formas:

Array(11).fill().map((valor, indice) => indice); (siguiendo tu lógica) O puedes ser más nativo con: [...Array(11).keys()]

tanrax commented 2 years ago

Reto 2 No has cumplido la primera regla, solo usar constantes :) . Splice es destructivo.

tanrax commented 2 years ago

Reto 3 Te pido la cantidad, que cuentes, no los valores que tengan una "s".

tanrax commented 2 years ago

Reto 4 No esta mal, felicidades. Te dejo una posible simplificación.

function generate_fibonacci_sequence(long, sequence = [0, 1]) {
    return sequence.length < long ? generate_fibonacci_sequence(long, sequence.concat(sequence.at(-1) + sequence.at(-2))) : sequence;
}

console.log(generate_fibonacci_sequence(8))
// [ 0, 1, 1, 2, 3, 5, 8, 13 ]
taipe1 commented 2 years ago

// // Todas las variables deben ser constantes. No uses ni let ni var, solo const. // // Prohibido usar los bucles: while y for.

// // Reto 1 // // Crea un Array con números de 0 al 10.

function crearArray(n){
  return new Array(n)
         .fill(1)
         .map((valor, indice) => indice) ;
}
console.log(crearArray(11))

// // Reto2 // // A partir del siguiente Array. // // Elimina el elemento que se encuentra en la posición 3. Insisto: posición 3, no por el string "PHP".

miLista = ["Lisp", "Clojure", "Haskell", "PHP", "Racket"]
const posicion = miLista[3]
const filtrar = miLista
                       .filter(elemento => elemento != posicion)
console.log(filtrar)

// // Reto 3 // A partir del siguiente Array. // Obtén el número de elementos que tienen una letra "s" en su nombre. // Si quieres subir el nivel, no uses "length".

miLista = ["Lisp", "Clojure", "Haskell", "Elm", "Racket", "Swift", "Erlang", "Scala"]
const nombreS = miLista
              .map(lista => lista.toLowerCase())
              .filter(elem => elem.includes('s'))
              .reduce(valor => valor = valor + 1 ,0)
console.log(nombreS)

// // Reto 4 // Crea una función que elimine los acentos de un string. Prohibido usar Regex o replace. //alguna pista

// // Reto 5 // // Crea una Array que muestre los primeros 10 números de la secuencia de Fibonacci. // // ¿Subimos el nivel? Crea una función donde le indiques la cantidad de cantidad de números que quieres en la secuencia.

const secuenciaFibonacci = (n) => {
  return new Array(n)
                 .fill(1)
                 .reduce((acumulador, actual, indice) => {
                  acumulador.push((indice<=1)?indice:acumulador[indice-2]+acumulador[indice-1])
                  return acumulador
                  },[])
}
console.log(secuenciaFibonacci(10))
tanrax commented 2 years ago

@taipe1 Pista para la 4: crea un json con las letras con acentos, como key, y las letra a sustituir sin acento, como value.