Posibles soluciones #2

Open
opened 2022-02-13 07:36:41 +01:00 by GilbertrdzDev · 2 comments
GilbertrdzDev commented 2022-02-13 07:36:41 +01:00 (Migrated from github.com)

Hola qué tal, vi una publicación de los retos por Telegram en el grupo de Javascript y me tomé un tiempo en pensar algunas posibles soluciones, no son las mejores, pero ahí vamos:

Reto 1

const miArray = [ ...new Array(11).keys() ];
console.log( miArray ); // (11) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Reto 2

const miLista = [ "Lisp", "Clojure", "Haskell", "PHP", "Racket" ].filter( (value, key) => key !== 2 );
console.log( miLista ); // (4) ['Lisp', 'Clojure', 'PHP', 'Racket']

Reto 3

const otraLista = [ "Lisp", "Clojure", "Haskell", "Elm", "Racket", "Swift", "Erlang", "Scala" ];
const countS = otraLista.filter( value => value.includes("s") )
                        .reduce( total => ++total, 0 );
console.log( countS ); // 2

Reto 4

const eliminarAcentos = (str) => {

    const acentos = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
    const sinAcentos = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz";
    const arrAcentos = str.split('');
    const arrSinAcentos = [];

    arrAcentos.forEach( ( letras ) => {
        const indice = acentos.indexOf( letras );
        indice !== -1
            ? arrSinAcentos.push( sinAcentos[indice] )
            : arrSinAcentos.push( letras );
    });

    return arrSinAcentos.join('');

};

console.log( eliminarAcentos( 'Holà, ¿qué tal?' ) ); // Hola, ¿que tal?

Reto 5 - 2 posibles soluciones:

const secuencia = [ 0, 5 ];

const fibonacci = (n, secuencia = [0, 1]) => {
    return new Array(n).fill(0).map((valor, indice) => {
        return indice < 2
            ? secuencia[indice]
            : secuencia[indice] = secuencia[indice - 1] + secuencia[indice - 2];
    });
}

const fibonacciFor = (n, secuencia = [0, 1]) => {
    for (let i = 2; i < n; i++) {
        secuencia[i] = secuencia[i - 1] + secuencia[i - 2];
    }
    return secuencia;
}

console.log( fibonacci(10, secuencia) ); // (10) [0, 5, 5, 10, 15, 25, 40, 65, 105, 170]
console.log( fibonacciFor(10, secuencia) ); // (10) [0, 5, 5, 10, 15, 25, 40, 65, 105, 170]
Hola qué tal, vi una publicación de los retos por Telegram en el grupo de Javascript y me tomé un tiempo en pensar algunas posibles soluciones, no son las mejores, pero ahí vamos: > Reto 1 ```js const miArray = [ ...new Array(11).keys() ]; console.log( miArray ); // (11) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` > Reto 2 ```js const miLista = [ "Lisp", "Clojure", "Haskell", "PHP", "Racket" ].filter( (value, key) => key !== 2 ); console.log( miLista ); // (4) ['Lisp', 'Clojure', 'PHP', 'Racket'] ``` > Reto 3 ```js const otraLista = [ "Lisp", "Clojure", "Haskell", "Elm", "Racket", "Swift", "Erlang", "Scala" ]; const countS = otraLista.filter( value => value.includes("s") ) .reduce( total => ++total, 0 ); console.log( countS ); // 2 ``` > Reto 4 ```js const eliminarAcentos = (str) => { const acentos = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž'; const sinAcentos = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz"; const arrAcentos = str.split(''); const arrSinAcentos = []; arrAcentos.forEach( ( letras ) => { const indice = acentos.indexOf( letras ); indice !== -1 ? arrSinAcentos.push( sinAcentos[indice] ) : arrSinAcentos.push( letras ); }); return arrSinAcentos.join(''); }; console.log( eliminarAcentos( 'Holà, ¿qué tal?' ) ); // Hola, ¿que tal? ``` > Reto 5 - 2 posibles soluciones: ```js const secuencia = [ 0, 5 ]; const fibonacci = (n, secuencia = [0, 1]) => { return new Array(n).fill(0).map((valor, indice) => { return indice < 2 ? secuencia[indice] : secuencia[indice] = secuencia[indice - 1] + secuencia[indice - 2]; }); } const fibonacciFor = (n, secuencia = [0, 1]) => { for (let i = 2; i < n; i++) { secuencia[i] = secuencia[i - 1] + secuencia[i - 2]; } return secuencia; } console.log( fibonacci(10, secuencia) ); // (10) [0, 5, 5, 10, 15, 25, 40, 65, 105, 170] console.log( fibonacciFor(10, secuencia) ); // (10) [0, 5, 5, 10, 15, 25, 40, 65, 105, 170] ```
tanrax commented 2022-02-13 09:36:59 +01:00 (Migrated from github.com)

¡Gracias por participar!

Reto 1 perfecto.
Reto 2. Has quitado la posición 2, y yo te pedía la 3 :) La forma esta bien, eso sí.
Reto 3 ¿Por qué ++total en lugar de un simple total++ o total += 1?
Reto 4 Hay una contrariedad. Se está guardando en una constante usando push. ¿Funciona? Si, ok. Pero a nivel de solución... buscaría otras maneras que no impliquen ese push tan feo. Por otro lado, es una solución poco elegante...
Reto 5 No te la puedo dar por válida. En la primera has hecho uso de una variable para almacenar y en la segunda un bucle for. ¿Quieres volver a intentarlo?

Si quieres ver las soluciones... están aquí: https://www.notion.so/androsfenollosa/Soluciones-soy-un-buen-programador-3d5b5bc24fac4353a03fa47434fae699

¡Gracias por participar! Reto 1 perfecto. Reto 2. Has quitado la posición 2, y yo te pedía la 3 :) La forma esta bien, eso sí. Reto 3 ¿Por qué ++total en lugar de un simple total++ o total += 1? Reto 4 Hay una contrariedad. Se está guardando en una constante usando push. ¿Funciona? Si, ok. Pero a nivel de solución... buscaría otras maneras que no impliquen ese push tan feo. Por otro lado, es una solución poco elegante... Reto 5 No te la puedo dar por válida. En la primera has hecho uso de una variable para almacenar y en la segunda un bucle for. ¿Quieres volver a intentarlo? Si quieres ver las soluciones... están aquí: https://www.notion.so/androsfenollosa/Soluciones-soy-un-buen-programador-3d5b5bc24fac4353a03fa47434fae699
tanrax commented 2022-02-14 07:25:38 +01:00 (Migrated from github.com)

¿Quieres intentarlo @GilbertrdzDev ?

¿Quieres intentarlo @GilbertrdzDev ?
Sign in to join this conversation.