繁体   English   中英

如何遍历另一个数组对象 (JSON) 中的数组对象?

[英]How to Iterate through an array object inside another array object (JSON)?

以下是我从 API 调用中收到的用户列表,该调用从 AWS cognito 获取用户列表。 我希望能够遍历它以在网页上显示用户的姓名和电子邮件。 我正在尝试result[0].attributes[3]迭代到“given_name”,结果是对象。 我需要“email”、“given_name”和“family_name”

您可以使用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"));

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
   }
}

您可以使用 map 迭代数组

arrributes.map(function(arr) => {
  console.log(arr.Name, arr.Value)
})

 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); } }); });

 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM