From df105364f8b33d426a39a312c9a6ca33cf2d93ec Mon Sep 17 00:00:00 2001 From: divlo Date: Fri, 30 Oct 2020 17:26:54 +0100 Subject: [PATCH] style: add whitespace --- .github/backup.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/backup.sql b/.github/backup.sql index 5eae50f..d942742 100644 --- a/.github/backup.sql +++ b/.github/backup.sql @@ -29,4 +29,4 @@ INSERT INTO `functions` (`id`, `title`, `slug`, `description`, `image`, `type`, (18, 'Quel est le mot le plus long ?', 'findLongestWord', 'Trouve le mot le plus long dans une chaîne de caractères.', '/images/functions/findLongestWord.png', 'form', '

function findLongestWord(string) {
    const arrayString = string.split(\" \");
    let wordLength = 0;
    let wordResult = \"\";

    arrayString.forEach((word=> {
        if (word.length > wordLength) {
            wordResult = word;
            wordLength = word.length;
        }
    });

    return wordResult;
}

On part du principe que chaque mot est séparé par des espaces. Au début, le mot le plus long a 0 caractère. Puis on fait une boucle qui vérifie si le mot qu\'on est en train de vérifier est plus long que le mot qui était jusqu\'à cette itération le plus long, si c\'est le cas, on met à jour les variables du mot le plus long, pour vérifier si c\'est encore le cas à la prochaine itération.

', '[{\"name\": \"string\", \"type\": \"text\", \"label\": \"Entrez la chaîne de caractères (phrase) à vérifier :\", \"placeholder\": \"(e.g : Une phrase quelconque.)\"}]', 1, '2020-05-06 20:29:05', '2020-05-08 07:23:23', 2), (19, 'Suite de Fibonacci', 'fibonacci', 'Calcule la suite de Fibonacci.', '/images/functions/fibonacci.png', 'form', '

La suite de Fibonacci est une suite d\"entiers dans laquelle chaque terme est la somme des deux termes qui le précèdent, voici les 6 premiers chiffres de la suite :
\n\n\n\n\n\n0, 1, 1, 2, 3, 5

Nous allons coder une fonction récursive qui va nous calculer les \"x\" premiers nombres de la suite.

Pour commencer qu\"est ce qu\"une fonction récursive ? Une fonction récursive est une fonction qui s\"auto appelle dans le corps de la fonction, exemple :

function doSomeCode() {
    doSomeCode();
}
doSomeCode();

Bon ici, ça n\"a pas trop de sens, car ça causerait \"une boucle infinie\" on obtiendra une \"InternalError: too much recursion\", par contre si on exécute la fonction ou on retourne une valeur d\"après des conditions, ça peut-être très intéressant.

function fibonacci(counterresult = [], number1 = 0number2 = 1) {
    if (counter === 0) {
        return result
    }
    counter--;
    result.push(number1);
    return fibonacci(counterresultnumber2number1 + number2);
}

Cette fonction a en réalité un seul argument qui doit être passé lors de la première exécution, le \"counter\", le reste c\'est des arguments qu\"on passera dans le corps de la fonction quand on la réecutera.

On décrémente counter de -1 à chaque itération donc si counter est égale à 0 c\"est qu\"il faut retourner la suite de nombres sinon on peut continuer à push des nombres dans la liste.
\nPour rajouter des nombres dans la liste, il nous faut 2 variables (les deux termes qui précèdent) qui ici nous appelons \"number1\" et \"number2\".

', '[{\"name\": \"counter\", \"type\": \"integer\", \"label\": \"Combien de nombres de la suite de fibonacci voulez vous calculer ?\", \"placeholder\": \"(e.g : 14)\"}]', 1, '2020-05-06 20:43:21', '2020-05-08 12:02:53', 2); INSERT INTO `functions` (`id`, `title`, `slug`, `description`, `image`, `type`, `article`, `utilizationForm`, `isOnline`, `createdAt`, `updatedAt`, `categorieId`) VALUES -(20, 'Trie les éléments d\'un tableau', 'sortArray', 'Trie les éléments d\'un tableau dans l\'ordre croissant.', '/images/functions/sortArray.png', 'form', '

Le but ici c\"est de recevoir un tableau de nombres et de pouvoir remettre dans l\"ordre croissant le tableau (exemple : [4, 12, 1, 8] devient [1, 4, 8, 12]).

Comme je le dis souvent, il faut penser un problème en petits autres problèmes plus facilement atteignable. Pour commencer, je décide de faire une fonction qui me retourne le nombre le plus petit d\"un tableau.
\n

function minNumber(array) {
    let minNumber = { index: 0value: array[0] };
    for (let index = 1index < array.lengthindex++) {
        const number = array[index];
        if (number < minNumber.value) {
            minNumber = { index: indexvalue:  array[index] };
        }
    }
    return minNumber;
}

Cette fonction retourne un objet contenant la valeur ainsi que son index du nombre le plus petit du tableau passé en argument.

Ensuite on peut passer à la fonction sortArray :

function sortArray(array) {
    const arrayDuplicated = [...array];
    const resultArray = [];
    while (array.length !== resultArray.length) {
        const min = minNumber(arrayDuplicated);
        resultArray.push(min.value);
        arrayDuplicated.splice(min.index1);
    }
    return resultArray;
}

Je duplique mon tableau (\"arrayDuplicated\") grâce au spread operator, c\'est sur ce tableau que je vais supprimer le nombre minimum pour l\'ajouter au tableau de resultat (\"resultArray\"), je fais une boucle while tant que le tableau de résultats n\'est pas égale au tableau initiale c\'est qu\'il faut rajouter encore des valeurs et continuer la boucle, splice modifie le tableau et \"array.splice(index, 1)\" permet de supprimer l\'élément à l\'index voulu, ici l\'index du nombre qu\'on a ajouté au tableau de résultat.

', '[{\"name\": \"numbersList\", \"type\": \"text\", \"label\": \"Entrez une liste de nombres (séparées par des virgules) :\", \"placeholder\": \"(e.g : 4, 12, 1, 8)\"}]', 1, '2020-05-06 20:57:48', '2020-05-08 13:17:26', 2); \ No newline at end of file +(20, 'Trie les éléments d\'un tableau', 'sortArray', 'Trie les éléments d\'un tableau dans l\'ordre croissant.', '/images/functions/sortArray.png', 'form', '

Le but ici c\"est de recevoir un tableau de nombres et de pouvoir remettre dans l\"ordre croissant le tableau (exemple : [4, 12, 1, 8] devient [1, 4, 8, 12]).

Comme je le dis souvent, il faut penser un problème en petits autres problèmes plus facilement atteignable. Pour commencer, je décide de faire une fonction qui me retourne le nombre le plus petit d\"un tableau.
\n

function minNumber(array) {
    let minNumber = { index: 0value: array[0] };
    for (let index = 1index < array.lengthindex++) {
        const number = array[index];
        if (number < minNumber.value) {
            minNumber = { index: indexvalue:  array[index] };
        }
    }
    return minNumber;
}

Cette fonction retourne un objet contenant la valeur ainsi que son index du nombre le plus petit du tableau passé en argument.

Ensuite on peut passer à la fonction sortArray :

function sortArray(array) {
    const arrayDuplicated = [...array];
    const resultArray = [];
    while (array.length !== resultArray.length) {
        const min = minNumber(arrayDuplicated);
        resultArray.push(min.value);
        arrayDuplicated.splice(min.index1);
    }
    return resultArray;
}

Je duplique mon tableau (\"arrayDuplicated\") grâce au spread operator, c\'est sur ce tableau que je vais supprimer le nombre minimum pour l\'ajouter au tableau de resultat (\"resultArray\"), je fais une boucle while tant que le tableau de résultats n\'est pas égale au tableau initiale c\'est qu\'il faut rajouter encore des valeurs et continuer la boucle, splice modifie le tableau et \"array.splice(index, 1)\" permet de supprimer l\'élément à l\'index voulu, ici l\'index du nombre qu\'on a ajouté au tableau de résultat.

', '[{\"name\": \"numbersList\", \"type\": \"text\", \"label\": \"Entrez une liste de nombres (séparées par des virgules) :\", \"placeholder\": \"(e.g : 4, 12, 1, 8)\"}]', 1, '2020-05-06 20:57:48', '2020-05-08 13:17:26', 2);