Hacher une chaîne de caractères en un nombre

JavaScriptJavaScriptBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer la manière de hacher une chaîne de caractères en un nombre entier à l'aide de l'algorithme SDBM. Nous utiliserons String.prototype.split() et Array.prototype.reduce() pour créer un hachage de la chaîne d'entrée, en utilisant le décalage binaire. Le but de ce laboratoire est de vous présenter le concept de hachage et de montrer comment il peut être utilisé pour générer des identifiants uniques pour les données.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28373{{"Hacher une chaîne de caractères en un nombre"}} javascript/data_types -.-> lab-28373{{"Hacher une chaîne de caractères en un nombre"}} javascript/arith_ops -.-> lab-28373{{"Hacher une chaîne de caractères en un nombre"}} javascript/comp_ops -.-> lab-28373{{"Hacher une chaîne de caractères en un nombre"}} javascript/higher_funcs -.-> lab-28373{{"Hacher une chaîne de caractères en un nombre"}} end

Comment hacher une chaîne de caractères en un nombre à l'aide de JavaScript

Pour hacher une chaîne d'entrée en un nombre entier à l'aide de JavaScript, suivez ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Utilisez les méthodes String.prototype.split() et Array.prototype.reduce() pour créer un hachage de la chaîne d'entrée, en utilisant le décalage binaire.
  3. Voici le code pour la fonction sdbm qui implémente l'algorithme de hachage :
const sdbm = (str) => {
  let arr = str.split("");
  return arr.reduce(
    (hashCode, currentVal) =>
      (hashCode =
        currentVal.charCodeAt(0) +
        (hashCode << 6) +
        (hashCode << 16) -
        hashCode),
    0
  );
};
  1. Pour tester la fonction, appelez-la avec un argument de chaîne de caractères :
sdbm("name"); // -3521204949

Cela retournera la valeur de hachage pour la chaîne d'entrée "name".

Sommaire

Félicitations ! Vous avez terminé le laboratoire Hash String Into Number. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.