es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtener valores de dentro de una matriz de objetos?

Necesito obtener los valores mínimo y máximo de cada uno de estos objetos dentro del siguiente array. He intentado todo lo que sé pero el valor devuelto es indefinido, ¿cómo puedo hacer esto? NOTA: Después, necesito hacer lo mismo en una función constructora y en una función de fábrica. ¿Es el mismo procedimiento?

let faixas3 = [
  {tooltip: 'de R$ 6667 hasta R$ 7777', minimo: 6667, maximo: 7777},
  {tooltip: 'de R$ 7778 hasta R$ 8889', minimo: 7778, maximo: 8889},
  {tooltip: 'de R$ 9000 hasta R$ 10000', minimo: 9000, maximo: 10000}
];
const {tooltip, minimo, maximo} = faixas3;
console.log({tooltip, minimo, maximo}); // { tooltip: undefined, minimo: undefined, maximo: undefined }
console.log(tooltip, minimo, maximo); // undefined undefined undefined
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener los valores mínimos y máximos de cada objeto dentro del array, debes iterar a través del array y comparar los valores de “minimo” y “maximo” en cada objeto. Puedes usar un bucle o las funciones de orden superior “map”, “reduce”, “forEach” o “filter” para lograr esto.

    Aquí tienes un ejemplo usando un bucle:

    let minValues = [];
    let maxValues = [];
    
    for (let i = 0; i < faixas3.length; i++) {
      minValues.push(faixas3[i].minimo);
      maxValues.push(faixas3[i].maximo);
    }
    
    console.log(Math.min(...minValues)); // 6667
    console.log(Math.max(...maxValues)); // 10000
    

    Para hacer lo mismo en una función constructora o una función de fábrica, puedes usar un enfoque similar dentro de la función:

    // Función constructora
    function Faixas(tooltip, minimo, maximo) {
      this.tooltip = tooltip;
      this.minimo = minimo;
      this.maximo = maximo;
    }
    
    let faixa1 = new Faixas('de R$ 6667 hasta R$ 7777', 6667, 7777);
    let faixa2 = new Faixas('de R$ 7778 hasta R$ 8889', 7778, 8889);
    let faixa3 = new Faixas('de R$ 9000 hasta R$ 10000', 9000, 10000);
    
    let faixasArray = [faixa1, faixa2, faixa3];
    
    let minValues = [];
    let maxValues = [];
    
    for (let i = 0; i < faixasArray.length; i++) {
      minValues.push(faixasArray[i].minimo);
      maxValues.push(faixasArray[i].maximo);
    }
    
    console.log(Math.min(...minValues)); // 6667
    console.log(Math.max(...maxValues)); // 10000
    
    
    // Función de fábrica
    function createFaixa(tooltip, minimo, maximo) {
      return {
        tooltip,
        minimo,
        maximo
      };
    }
    
    let faixasFactory = [
      createFaixa('de R$ 6667 hasta R$ 7777', 6667, 7777),
      createFaixa('de R$ 7778 hasta R$ 8889', 7778, 8889),
      createFaixa('de R$ 9000 hasta R$ 10000', 9000, 10000)
    ];
    
    let minValues = [];
    let maxValues = [];
    
    for (let i = 0; i < faixasFactory.length; i++) {
      minValues.push(faixasFactory[i].minimo);
      maxValues.push(faixasFactory[i].maximo);
    }
    
    console.log(Math.min(...minValues)); // 6667
    console.log(Math.max(...maxValues)); // 10000
    

    El procedimiento es el mismo para los tres casos. Necesitas iterar a través del array de objetos y comparar los valores de “minimo” y “maximo” en cada objeto para obtener los valores mínimos y máximos.

Comments are closed.