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

336
Visualizações
¿Cómo encontrar el máximo de un elemento interno en una lista de valores clave?

Tengo una lista de elementos como se ve a continuación. Los valores para la clave de cada año son una lista de 10 elementos, pero para abreviar, solo muestro los primeros dos. ¿Cómo puedo encontrar el máximo de todos los valores internos de "recuento"? He analizado varios enfoques, pero ninguno ha funcionado hasta ahora y tal vez me esté perdiendo algo aquí. Por ejemplo, me gustan mucho algunos de los de una sola línea aquí, pero no funcionaron para mí . Ingrese la descripción del enlace aquí.

Solo para aclarar que los datos son el resultado de un anidamiento en el archivo csv y están destinados a ser utilizados en el gráfico d3 y, preferiblemente, no en la biblioteca de importación que no sean las estándar.

 data = [ {'2015': values: [{key: '0', value: {count: 45}},{key: '1', value: {count: 3}}, ... ]}, {'2016': values: [{key: '0', value: {count: 67}},{key: '1', value: {count: 0}}, ... ]}, {'2017': values: [{key: '0', value: {count: 12}},{key: '1', value: {count: 8}}, ... ]} ]

Para mostrar mejor cómo se ven los datos, aquí está la captura de pantalla en caso de que ayude a aclarar la pregunta.

ingrese la descripción de la imagen aquí

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

0

Podría desestructurar el objeto de esta manera aplanando la matriz de valores y luego mapeando para obtener la variable de conteo.

 var data = [ {"key":"2015", "values": [{"key": 0, "value": {"count": 45}},{"key": 1, "value": {"count": 3}}]},{"key":"2016", "values": [{"key": 0, "value": {"count": 67}},{"key": 1, "value": {"count": 0}}]},{"key": "2017", "values": [{"key": 0, "value": {"count": 12}},{"key": 1, "value": {"count": 8}}]} ] var num = Math.max(... data.map(d=>d.values).flat().map(v=>v.value.count)) console.log(num)

about 4 years ago · Juan Pablo Isaza Relatório

0

Algo como esto debería funcionar

 const myData = [ { key: "2015", values: [10, 5, 4, 3, 2, 1, 0] }, { key: "2015", values: [10, 5, 4, 3, 2, 1, 0] }, { key: "2015", values: [10, 5, 4, 3, 2, 1, 0] }, { key: "2015", values: [100, 5, 4, 3, 2, 1, 0] }, { key: "2015", values: [10, 5, 4, 3, 2, 1, 0] }, ] const maxValue = (data) => { // Setting an initial value to the lowest possible value in Javascript let max = Number.MIN_VALUE; // Iterate over each object in your array of data data.forEach(({values}) => { // Destructure the values from each object and then iterate over those values.forEach(value => { // Set the max to the higher over the current max or current value max = Math.max(max, value); }) }) // Return the max return max; } console.log(maxValue(myData))

Lo que estamos haciendo aquí es iterar sobre cada objeto en la matriz inicial. Luego iterando sobre los valores haciendo un seguimiento de un máximo actual.

about 4 years ago · Juan Pablo Isaza Relatório

0

Su estructura de datos parece ser incorrecta. No puede tener { '2015': values: [...] } . Esto sería el equivalente de { KEY: VALUE: VALUE} . El navegador parece estar infiriendo el significado de su código y creando un objeto a partir de él de todos modos, pero no es correcto.

Puede hacer un objeto de objetos y tener objetos internos nombrados, como este:

 data = { 2015: { values: [ { key: "0", value: { count: 45 } }, { key: "1", value: { count: 3 } }, ], }, 2016: { values: [ { key: "0", value: { count: 67 } }, { key: "1", value: { count: 0 } }, ], }, 2017: { values: [ { key: "0", value: { count: 12 } }, { key: "1", value: { count: 8 } }, ], }, };

O puede crear una matriz de objetos, como esta:

 data = [ { year: 2015, values: [ { key: "0", value: { count: 45 } }, { key: "1", value: { count: 3 } }, ], }, { year: 2016, values: [ { key: "0", value: { count: 67 } }, { key: "1", value: { count: 0 } }, ], }, { year: 2017, values: [ { key: "0", value: { count: 12 } }, { key: "1", value: { count: 8 } }, ], }, ];

La forma en que obtiene la propiedad de count más alto depende de la estructura de datos que use.

Usando la matriz de objetos, abordaría el problema de esta manera:

 // create a temp storage array to store "count" property of each const countArray = []; // iterate through the outer objects for (const outerObject of data) { // iterate through the objects that are in the "values" array for (const innerObject of outerObject.values) { // push the "count" value to the array countArray.push(innerObject.value.count) } } // sort the array in place, with highest values first countArray.sort((a, b) => b - a); // display the result console.log(countArray[0])

Podría hacer algo similar para la estructura de datos de objeto de objetos, pero necesitaría una sintaxis diferente para eso.

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