Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

125
Vistas
Combine json stat para devolver tanto la identificación como la etiqueta/valor

Quiero que regionValue regrese como la clave del objeto Region, pero en su lugar devuelve nulo.

Mi objetivo es conseguir:

 { value: 1122000, Tid: '2020', ContentsCode: 'Samlet inntekt, median (kr)', HusholdType: 'Par med barn 0-17 år', Region: 'Ringerike', regionValue:"3007" },

pero esto es lo que he intentado hasta ahora:

 const JSONstat = require("jsonstat-toolkit"); var url="https://data.ssb.no/api/v0/dataset/49678.json?lang=no"; function test(){ return JSONstat(url).then(main); } async function main(j){ var ds=j.Dataset(0); let y="Region" let array = ds.toTable( { type : "arrobj" } ,function( d ){ if ( d.value!==null){ d.regionValue = ds.Dimension(y).Category(d.Region).id return d; } }) console.log(array) } test()
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que la dimensión Región solo está disponible como un objeto con ID -> Label , por lo que no puede buscar directamente por nombre de Región para obtener la ID.

Como solución alternativa, puede crear un nuevo objeto invertido con Label => ID y usarlo para recuperar el Valor de región de la Región.

Entonces en código

  1. Declare una variable global que contendrá su nuevo objeto
 assoc = {}
  1. en su método main , repita todas las Regiones y complete su objeto invertido

Tenga en cuenta que las etiquetas mostraban una fecha, por lo que usé split para eliminar información inútil que no permitiría una coincidencia directa en el nombre de la región.

 for(const key in ds.__tree__.dimension.Region.category.label) { let label = ds.__tree__.dimension.Region.category.label[key].split('(')[0].trim() assoc[label] = key }
  1. En su devolución de llamada que se ejecuta para cada elemento, lea la ID del objeto assoc que acaba de completar y asigne su valor a d.regionValue
 if (d.value !== null) { d.regionValue = assoc[d.Region] return d; }

Cuando emita su matriz, se mostrará así

 0: ContentsCode: "Samlet inntekt, median (kr)" HusholdType: "Alle husholdninger" Region: "Halden" Tid: "2020" regionValue: "0101" value: 616000

Aquí está el guión completo

 var url = "https://data.ssb.no/api/v0/dataset/49678.json?lang=no"; assoc = {} function test() { return JSONstat(url).then(main); } async function main(j) { var ds = j.Dataset(0); for(const key in ds.__tree__.dimension.Region.category.label) { let label = ds.__tree__.dimension.Region.category.label[key].split('(')[0].trim() assoc[label] = key } let array = ds.toTable({ type: "arrobj" }, function (d) { if (d.value !== null) { d.regionValue = assoc[d.Region] return d; } }) console.log(array) } test()
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda