0
votes

Rechercher une clé d'objet dans l'objet tableau imbriqué

J'ai un objet que j'aurais obtenu {fiabilite: xxx, rectivite: yyy} code> de région = AAA code> (ou autre) dans voyages code> (Je n'ai pas besoin de chercher dans ICC code>)

Voici comment j'essaie d'obtenir des données p>

p>

const activityName = 'VOYAGES' // activityName: VOYAGES Or ICC
const  queryParams = [',','region=AAA']
const objectifs = {
  'VOYAGES': [
    {
      'region=AAA': {
        FIABILITE: '75',
        REACTIVITE: '90'
      }
    },
    {
      'region=BBBB': {
        FIABILITE: '75',
        REACTIVITE: '86'
      }
    }
  ],
  'ICC': [
    {
      'region=CSIC': {
        FIABILITE: '45',
        REACTIVITE: '80'
      }
    }
  ]
}


const objKeys = Object.values(objectifs[activityName])
const index = objKeys.indexOf((queryParams[1]));
const data = objectifs[activityName][index]; 
console.log(data)


4 commentaires

Qu'est-ce que tu veux exactement?


Comment définissez-vous quelle région vous voulez? par entrée de l'utilisateur, par code de codage ou comment?


Vous êtes l'utilisateur de l'utilisateur, donc dynamique


Je ne comprends pas exactement, quelle sortie attendez-vous? De quoi avez-vous besoin? Qu'est-ce qui va mal exactement?


3 Réponses :


0
votes

C'est parce que votre objet est créé que vous obtenez indéfini, vous devez ajouter un index objectifs ['Voyages'] [0] ['Région = AAA'] code> comme ça:

p>

objectifs = {
  'VOYAGES': [{
      'region=AAA': {
        FIABILITE: '75',
        REACTIVITE: '90'
      }
    },
    {
      'region=BBBB': {
        FIABILITE: '75',
        REACTIVITE: '86'
      }
    }
  ],
  'ICC': [{
    'region=CSIC': {
      FIABILITE: '45',
      REACTIVITE: '80'
    }
  }]
}
var data = {}

objectifs['VOYAGES'].forEach(function(element) {
  if ('region=AAA' in element) {
    data = element['region=AAA'];
  }
});

console.log(data)


1 commentaires

Vous avez codé dur l'index 0 je le trouverais de manière dynamique



0
votes

Vous pouvez essayer:

p>

const queryParams = [',','region=AAA']
const activityName = 'VOYAGES' 
const searchKey = queryParams[1];

objectif={'VOYAGES': [
    {
        'region=AAA': {
            FIABILITE: '75',
            REACTIVITE: '90'
        }
    },
    {
        'region=BBBB': {
            FIABILITE: '75',
            REACTIVITE: '86'
        }
    }
],
'ICC': [
    {
        'region=CSIC': {
            FIABILITE: '45',
            REACTIVITE: '80'
        }
    }
]};

let resultData = objectif[activityName].find((entry) => {
  return entry[searchKey];
})[searchKey];

console.log("Result data: ", resultData);


0 commentaires

0
votes

Vous pouvez trouver l'index code> code> dans la matrice de l'objet avec une propriété spécifique à l'aide de:

const index = objectifs [ActivityName] .Findindex (x => !! x [ QueryParams [1]]]) Code> P>

Exemple de travail: P>

P>

const activityName = 'VOYAGES' // activityName: VOYAGES Or ICC
const  queryParams = [',','region=AAA']
const objectifs = {
  'VOYAGES': [
    {
      'region=AAA': {
        FIABILITE: '75',
        REACTIVITE: '90'
      }
    },
    {
      'region=BBBB': {
        FIABILITE: '75',
        REACTIVITE: '86'
      }
    }
  ],
  'ICC': [
    {
      'region=CSIC': {
        FIABILITE: '45',
        REACTIVITE: '80'
      }
    }
  ]
}

const index = objectifs[activityName].findIndex(x => x.hasOwnProperty([queryParams[1]]));

const data = objectifs[activityName][index]; 
console.log(data)

const obj = data[queryParams[1]];
console.log(obj)


0 commentaires