0
votes

Apprendre JS - Comment récupérez-vous une valeur d'une paire de clé / de valeur lorsque cette paire est elle-même une valeur d'une autre paire, tout dans un tableau?

OK, alors j'apprends JS et j'ai frappé un peu un mur. Je m'excuse si j'utilise les mauvais termes pour décrire l'un de ceci, mais ...

Dans le code ci-dessous, j'ai besoin de vérifier dans le tableau "Personnes" - dans "Lieu" (l'emplacement "sera considéré comme une clé ici?) - Récupérez la valeur de 'état' (clé / valeur comme valeur d'une clé ???) - et vérifiez si c'est ou n'est pas un certain «état». Je dois vérifier cela pour chaque personne dans la matrice 'personnes'. P>

Je sais comment vérifier si la valeur de "État" est ce dont j'es besoin pour être ou non (une fois que je peux réellement arriver à cette valeur), mais je ne peux pas sembler l'avoir profondément profondément. Je sais que j'ai besoin d'une boucle qui tire la valeur de "État" de "Emplacement" de "personnes", mais je ne sais pas comment commencer à écrire ça. P>

p>

const people = [{
    location: {
        street: 'B Street',
        state: 'New Hampshire',
        country: 'United States',
        city: 'New Douglas'
    },
    last_name: 'Schumm',
    first_name: 'Tom',
    contacts: {
        mobile: '(904) 730-4211',
        email: 'deep_shakira@hotmail.com'
    }
},
{
    location: {
        street: 'Pennsylvania Avenue',
        state: 'Hawaii',
        country: 'United States',
        city: 'Woodland'
    },
    last_name: 'Jacobson',
    first_name: 'Reyna',
    contacts: {
        mobile: '1-968-545-2264',
        email: 'type_leta@yahoo.com'
    }
},
{
    location: {
        street: 'Cottage Street',
        state: 'Connecticut',
        country: 'United States',
        city: 'Glaslyn'
    },
    last_name: 'Zemlak',
    first_name: 'Maxwell',
    contacts: {
        mobile: '1-407-135-6122',
        email: 'dorthy@hotmail.com'
    }
}


2 commentaires

Voulez-vous filtrer la matrice en fonction de la valeur correspondante de l'état? Ou vous voulez juste vrai / faux si l'état existe dans le tableau ou non?


@Sarfraaz à la fin, je filtrerai un éventail beaucoup plus long de personnes / d'informations. Fondamentalement, s'ils ne sont pas d'Alaska ou d'Hawaii, cette personne sera poussée dans un nouveau tableau. Je sais comment accomplir cette partie, je me lance simplement pour obtenir la valeur "State" dans son emplacement actuel.


3 Réponses :


0
votes

Vous pouvez traverser le tableau et utiliser. La notation Obtenez les valeurs de l'état. Vous pouvez utiliser une condition IF pour vérifier un état spécifique

p>

const people = [{
    location: {
      street: 'B Street',
      state: 'New Hampshire',
      country: 'United States',
      city: 'New Douglas'
    },
    last_name: 'Schumm',
    first_name: 'Tom',
    contacts: {
      mobile: '(904) 730-4211',
      email: 'deep_shakira@hotmail.com'
    }
  },
  {
    location: {
      street: 'Pennsylvania Avenue',
      state: 'Hawaii',
      country: 'United States',
      city: 'Woodland'
    },
    last_name: 'Jacobson',
    first_name: 'Reyna',
    contacts: {
      mobile: '1-968-545-2264',
      email: 'type_leta@yahoo.com'
    }
  },
  {
    location: {
      street: 'Cottage Street',
      state: 'Connecticut',
      country: 'United States',
      city: 'Glaslyn'
    },
    last_name: 'Zemlak',
    first_name: 'Maxwell',
    contacts: {
      mobile: '1-407-135-6122',
      email: 'dorthy@hotmail.com'
    }
  }
]
people.forEach(e => {
  if (e.location.state == 'Connecticut') {
    console.log(e.first_name + " " + e.last_name)
  }
})


0 commentaires

0
votes

Vous pouvez le faire comme ceci

​​Filtrer la matrice de personnes basée sur la valeur à l'intérieur de l'emplacement.State de chaque objet à l'intérieur de la matrice, P>

Vous pouvez améliorer la condition de correspondance des états en fonction de votre préférence, [J'aime, comparer après la conversion de tous les espaces minuscules et de garniture] , mais c'est totalement en fonction de l'exigence que vous avez p>

p>

var people = [{
    location: {
        street: 'B Street',
        state: 'New Hampshire',
        country: 'United States',
        city: 'New Douglas'
    },
    last_name: 'Schumm',
    first_name: 'Tom',
    contacts: {
        mobile: '(904) 730-4211',
        email: 'deep_shakira@hotmail.com'
    }
},
{
    location: {
        street: 'Pennsylvania Avenue',
        state: 'Hawaii',
        country: 'United States',
        city: 'Woodland'
    },
    last_name: 'Jacobson',
    first_name: 'Reyna',
    contacts: {
        mobile: '1-968-545-2264',
        email: 'type_leta@yahoo.com'
    }
},
{
    location: {
        street: 'Cottage Street',
        state: 'Connecticut',
        country: 'United States',
        city: 'Glaslyn'
    },
    last_name: 'Zemlak',
    first_name: 'Maxwell',
    contacts: {
        mobile: '1-407-135-6122',
        email: 'dorthy@hotmail.com'
    }
}];

let states = ['Alaska','Hawaii'];

var filtered = people.filter( person => states.indexOf(person.location.state) > -1 );

console.log(filtered);


0 commentaires

0
votes

const test1 = people.find(people => people.location.state === 'Connecticut');


0 commentaires