Как перебрать объект массива внутри другого объекта массива (JSON)? - PullRequest
0 голосов
/ 18 октября 2018

Ниже приведен список пользователей, которые я получаю от вызова API, который получает список пользователей из AWS cognito.Я хочу иметь возможность перебирать его, чтобы отображать имя и адрес электронной почты пользователя на веб-странице.Я пытаюсь result[0].attributes[3] перебрать "имя_символа", результат , являющийся объектом.I need the

Ответы [ 5 ]

0 голосов
/ 18 октября 2018

const response = [
    { Attributes: [
      {Name: 'given_name', Value: 'name 1'},
      {Name: 'family_name', Value: 'family 1'},
      {Name: 'email', Value: 'email1@gmail.com'}
      ]
    },
    { Attributes: [
      {Name: 'given_name', Value: 'name 2'},
      {Name: 'family_name', Value: 'family 2'},
      {Name: 'email', Value: 'email2@gmail.com'}
      ]
    },
  ];
  
  const users = response.map((ele) => {
      const { Attributes } = ele;
      return Attributes.reduce((agg, {Name, Value}) => {
        if (Name === 'given_name') {
          agg.name = Value;
        }
        if (Name === 'email') {
          agg.email = Value;
        }
        return agg;        
      }, {});      
 });
    
console.log(users);
0 голосов
/ 18 октября 2018

Object.keys(result).forEach(key => {
    let resultObject = result[key].map(array => {
      if (array.Name == "given_name") {
        console.log(array.value)
      } else if (array.Name == "email") {
        console.log(array.value);
      }
    });
  });
0 голосов
/ 18 октября 2018

Вы можете использовать filter, чтобы определить, можно ли найти свойство объекта, а затем вернуть этот объект.

result[0].Attributes.filter(obj => obj.name === name);

Вот пример:

let result = [{
  Attributes: [{
      name: "Mario"
    },
    {
      name: "Luigi"
    },
    {
      name: "Toad"
    },
    {
      name: "Peach"
    }
  ]
}]

function lookfor(name) {

  return result[0].Attributes.filter(obj => obj.name === name);
}

console.log(lookfor("Mario"));
console.log(lookfor("Peach"));
0 голосов
/ 18 октября 2018

Вы можете перебрать массив, используя карту

arrributes.map(function(arr) => {
  console.log(arr.Name, arr.Value)
})
0 голосов
/ 18 октября 2018
for(var i in array){
   var attr = array[i].Attributes;
   for(var l in attr){
      // attr[l].Name returns name
      // attr[l].Value returns values
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...