Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

526
Visualizações
¿Cuál es la diferencia entre almacenar objetos como claves en un objeto con JSON.stringify(obj) y almacenar objetos como claves en un Mapa?

Estaba intentando un algoritmo con el siguiente mensaje:

Defina una función fastCache que tome un argumento, una función y devuelva una función. Cuando se invoca fastCache , crea un objeto que rastrea las llamadas a la función devuelta, donde cada entrada a la función devuelta se asocia con su salida. Cada llamada posterior a esa función devuelta con el mismo argumento devolverá la salida directamente desde el objeto, en lugar de volver a invocar la función original. Escriba fastCache para que pueda manejar la entrada de objetos o matrices, y cualquier cantidad de argumentos.

A continuación se muestra la solución a esto con un objeto que usa JSON.stringify en las claves de objeto para almacenar objetos como claves:

 const fastCache = (func) => { const cache = {}; return (...args) => { if (cache.hasOwnProperty(JSON.stringify(args))) return cache[JSON.stringify(args)]; cache[JSON.stringify(args)] = func(...args); return cache[JSON.stringify(args)]; }; };

Esta solución tiene sentido para mí ya que estamos pasando valores como claves para el objeto y luego devolviendo el valor respectivo de esa clave. Intenté escribir una solución a este problema usando un mapa JS y no tengo claro por qué mi solución a continuación no funciona de la misma manera que la solución anterior:

 const fastCache = (func) => { const cache = new Map(); return (...args) => { if (cache.has(args)) return cache.get(args); cache.set(args, func(...args)); return cache.get(args); }; };

Esta función termina agregando varias claves al Mapa con la misma clave cuando los objetos se pasan como claves en sucesivas llamadas de función para el mismo objeto que se pasa como argumento. Tengo entendido que esto se debe a que los objetos se pasan por referencia en lugar de las cadenas que se pasan por valor, pero dado eso, me cuesta entender los beneficios de un Mapa sobre un Objeto si un get/set no coincide con diferentes referencias de objetos. . ¿Se usa un mapa solo cuando estamos pasando la misma referencia a un objeto frente a un objeto para cuando necesitamos hacer verificaciones en el mismo valor? Esto parece contradictorio con el propósito de un Mapa en JS. Cualquier aclaración sobre cuándo se prefiere un Mapa sobre un objeto y viceversa sería muy apreciada. Gracias.

over 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Assistente virtual