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

210
Visualizações
JSON encadena un conjunto

¿Cómo sería un JSON.stringify() un Set ?

Cosas que no funcionaron en Chromium 43:

 var s = new Set(['foo', 'bar']); JSON.stringify(s); // -> "{}" JSON.stringify(s.values()); // -> "{}" JSON.stringify(s.keys()); // -> "{}"

Esperaría obtener algo similar al de una matriz serializada.

 JSON.stringify(["foo", "bar"]); // -> "["foo","bar"]"
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

JSON.stringify no funciona directamente con conjuntos porque los datos almacenados en el conjunto no se almacenan como propiedades.

Pero puede convertir el conjunto en una matriz. Entonces podrás encadenarlo correctamente.

Cualquiera de los siguientes hará el truco:

 JSON.stringify([...s]); JSON.stringify([...s.keys()]); JSON.stringify([...s.values()]); JSON.stringify(Array.from(s)); JSON.stringify(Array.from(s.keys())); JSON.stringify(Array.from(s.values()));
over 4 years ago · Santiago Trujillo Relatório

0

Puede pasar una función de "reemplazo" a JSON.stringify :

 const fooBar = { foo: new Set([1, 2, 3]), bar: new Set([4, 5, 6]) }; JSON.stringify( fooBar, (_key, value) => (value instanceof Set ? [...value] : value) );

Resultado:

 "{"foo":[1,2,3],"bar":[4,5,6]}"

toJSON es un artefacto heredado, y un mejor enfoque es usar un replacer personalizado , consulte https://github.com/DavidBruant/Map-Set.prototype.toJSON/issues/16

over 4 years ago · Santiago Trujillo Relatório

0

Si bien todo lo anterior funciona, sugiero que establezca una subclase y agregue un método toJSON para asegurarse de que se encadene correctamente. Especialmente si vas a estar tensando a menudo. Uso conjuntos en mis tiendas Redux y necesitaba asegurarme de que esto nunca fuera un problema.

Esta es una implementación básica. Nombrar es solo para ilustrar el punto, elige tu propio estilo.

 class JSONSet extends Set { toJSON () { return [...this] } } const set = new JSONSet([1, 2, 3]) console.log(JSON.stringify(set))
over 4 years ago · Santiago Trujillo Relatório
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
Recomende algumas ofertas para mim
Preciso de ajuda