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

118
Visualizações
Obtenga la longitud de la matriz y empuje en cada objeto

tengo una funcion

 const output = {} sites.forEach(obj=>{ const ids = obj.ids if(ids && ids.length>0){ ids.forEach(id=>{ if(!output[id]){ output[id] = [] } output[id].push(obj.url); }); } }); fs.writeFileSync('cleanedData.json', JSON.stringify(output));

que toma datos como:

 { url: "www.site.com", ids: ["F20", "C10", "C05"] }, { url: "www.site.com/something", ids: ["F20", "C05", "C10"] }, { url: "www.site.com/somethingelse", ids: ["F20", "C12", "C05"] }

y lo transforma para que tenga una lista de todas las identificaciones y todas las direcciones URL con esa identificación:

 { "F20": [ "www.site.com", "www.site.com/something", "www.site.com/somethingelse" ] }, { "C10": [ "www.site.com", "www.site.com/something" ] }, { "C12": [ "www.site.com/somethingelse" ] }, { "C05": [ "www.site.com", "www.site.com/something", "www.site.com/somethingelse" ] }

Puedo obtener un recuento de la longitud de la matriz de cada ID con

 console.log(Object.values(output).map(id => id.length))

Pero no puedo entender cómo incluir eso como parte de forEach, por lo que tengo una clave/valor en cada objeto que muestra la longitud de la matriz.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Use objetos anidados en la salida y asígnele una propiedad de length que incremente cuando presione la matriz.

 const sites = [{ url: "www.site.com", ids: ["F20", "C10", "C05"] }, { url: "www.site.com/something", ids: ["F20", "C05", "C10"] }, { url: "www.site.com/somethingelse", ids: ["F20", "C12", "C05"] } ]; const output = {}; sites.forEach(obj => { const ids = obj.ids if (ids && ids.length > 0) { ids.forEach(id => { if (!output[id]) { output[id] = {length: 0, urls: []} } output[id].urls.push(obj.url); output[id].length++; }); } }); console.log(output);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar Array.prototype.reduce() combinado con Array.prototype.forEach() :

 const sites = [{url: "www.site.com",ids: ["F20", "C10", "C05"]},{url: "www.site.com/something",ids: ["F20", "C05", "C10"]},{url: "www.site.com/somethingelse",ids: ["F20", "C12", "C05"]}] const output = sites.reduce((a, { url, ids }) => { ids.forEach(id => { a[id] = a[id] || { length: 0, urls: [] } a[id].length += 1 a[id].urls.push(url) }) return a }, {}) console.log(output)

about 4 years ago · Juan Pablo Isaza 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