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

350
Vistas
cómo obtener el valor máximo de una matriz json anidada

Tengo una matriz json anidada y estoy tratando de obtener el valor máximo del atributo de puntos en esta matriz.

 data = { "name": "KSE100", "children": [ { "name": "TECHNOLOGY & COMMUNICATION", "children": [ { "name": "TRG", 'points': -21 }, { "name": "SYS", }, ] }, { "name": "OIL", "children": [ { "name": "PPL", 'points': 9 }, { "name": "PSO", 'points': -19 }, ] }, ] }

Quiero el valor máximo de puntos de las secciones de niños. Me refiero a los sectores de tecnología y petróleo.

Lo que he hecho hasta ahora :

 var max; for (var i in data.children.length) { for (var j in data.data[i]) { var point = data.data[i].children[j] } }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Prueba lo siguiente:

 data = { "name": "KSE100", "children": [ { "name": "TECHNOLOGY & COMMUNICATION", "children": [ { "name": "TRG", 'points': -21 }, { "name": "SYS", }, ] }, { "name": "OIL", "children": [ { "name": "PPL", 'points': 9 }, { "name": "PSO", 'points': -19 }, ] }, ] } var array = []; for (var first of data.children) { for (var second of first.children) { if(second.points != undefined) { array.push(second); } } } var maximumValue = Math.max.apply(Math, array.map(function(obj) { return obj.points; })); console.log(maximumValue);

about 4 years ago · Juan Pablo Isaza Denunciar

0

No estaba 100 % seguro de cuál es su objetivo exacto, así que incluí un valor máximo agrupado y un valor máximo general con un ligero enfoque funcional.

Tenga en cuenta que algunas funcionalidades no funcionan en navegadores más antiguos, por ejemplo flatMap . De todos modos, esto debería ayudarlo a comenzar y seguir adelante.

 const data = { name: "KSE100", children: [ { name: "TECHNOLOGY & COMMUNICATION", children: [ { name: "TRG", points: -21, }, { name: "SYS", }, ], }, { name: "OIL", children: [ { name: "PPL", points: 9, }, { name: "PSO", points: -19, }, ], }, ], }; const maxPointsByGroup = data.children.reduce( (acc, entry) => [ ...acc, { name: entry.name, max: Math.max( ...entry.children .map((entry) => entry.points) .filter((entry) => typeof entry === "number") ), }, ], [] ); console.log("grouped max:", maxPointsByGroup); const overallMax = Math.max( ...data.children .flatMap((entry) => entry.children.flatMap((entry) => entry.points)) .filter((entry) => typeof entry === "number") ); console.log("overall max:", overallMax);

about 4 years ago · Juan Pablo Isaza Denunciar

0

puede usar el método de reducción en el objeto de matriz para hacer esto

 const maxValues = [] data.children.forEach(el => { if (el.name === 'OIL' || el.name === 'TECHNOLOGY & COMMUNICATIO'){ const max = el.children.reduce((current, previous) => { if (current.points > previous.points) { return current } }, 0) maxValues.append({name: el.name, value: max.points}) } })

Esto le dará una matriz de objetos con el nombre y el valor máximo.

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