Hash de cadena en número

JavaScriptJavaScriptBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos cómo hashear una cadena en un número entero utilizando el algoritmo SDBM. Utilizaremos String.prototype.split() y Array.prototype.reduce() para crear un hash de la cadena de entrada, utilizando desplazamiento de bits. El propósito de este laboratorio es introducirte al concepto de hash y cómo se puede utilizar para generar identificadores únicos para los datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced 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{{"Hash de cadena en número"}} javascript/data_types -.-> lab-28373{{"Hash de cadena en número"}} javascript/arith_ops -.-> lab-28373{{"Hash de cadena en número"}} javascript/comp_ops -.-> lab-28373{{"Hash de cadena en número"}} javascript/higher_funcs -.-> lab-28373{{"Hash de cadena en número"}} end

Cómo hashear una cadena en un número utilizando JavaScript

Para hashear una cadena de entrada en un número entero utilizando JavaScript, sigue estos pasos:

  1. Abre la Terminal/SSH y escribe node para comenzar a practicar la codificación.
  2. Utiliza los métodos String.prototype.split() y Array.prototype.reduce() para crear un hash de la cadena de entrada, utilizando desplazamiento de bits.
  3. Aquí está el código de la función sdbm que implementa el algoritmo de hash:
const sdbm = (str) => {
  let arr = str.split("");
  return arr.reduce(
    (hashCode, currentVal) =>
      (hashCode =
        currentVal.charCodeAt(0) +
        (hashCode << 6) +
        (hashCode << 16) -
        hashCode),
    0
  );
};
  1. Para probar la función, llámala con un argumento de cadena:
sdbm("name"); // -3521204949

Esto devolverá el valor hash para la cadena de entrada "name".

Resumen

¡Felicidades! Has completado el laboratorio de Hash String Into Number. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.