У меня есть сложный объект, с которым я работаю, чтобы создать таблицу контактных данных, но у меня возникают проблемы с вложенными массивами.
Я пытался использовать вложенные циклы и недавно переместился к вложенному подходу .map () , но я все еще бью стену, где я не могу получить доступ к двум последним массивам объектов (номера телефонов и адреса), чтобы распечатать их, и я полностью раскручиваю свои колеса.
Я работаю над этим более дня, и я совершенно ошеломлен, как подойти к этому.
![Edit crazy-edison-6l6ue](https://codesandbox.io/static/img/play-codesandbox.svg)
Ожидаемый результат:
Name | Member | Telephone | Email | Addresses
Ben B| Friend | 610-535-1234 | ben@gmail.com | 123 Fiction Drive,Denver
215-674-6789 234 Dreary Ln,Seattle
Alice | Family| 267-333-1234 | ally@aim.com | 437 Chance St, Pitts.
Компонент:
const rows = contacts.contactGroups.map(group =>
<>
<thead>
<tr>
<td>Name</td>
<td>Member Type</td>
<td>Telephone</td>
<td>Email</td>
<td>Address</td>
</tr>
</thead>
<tbody>
<tr>{group.contactGroup}</tr>
<td>
<tr>
{group.contacts.map(contact => <td>
{contact.fullName}</td>)}
{group.contacts.map(contact => <td>
{contact.member}</td>)}
{/* {group.contacts.map(contact => <td>
</td>)}
{group.contacts.map(contact =>
<td>{contact.addresses}
</td>)} */}
</tr>
</td>
</tbody>
</>);
Структура данных:
export default {
count: 1,
contactGroups: [
{
contactGroup: "Family",
count: 1,
contacts: [
{
member: "Uncle",
fullName: "BENJAMIN BILLIARDS",
lastName: "BILLIARDS",
firstName: "BENJAMIN",
email: "shark@billiards.com",
phoneNumbers: [
{
telephoneNumber: "123-456-7899",
type: "mobile"
},
{
telephoneNumber: "610-555-7625",
type: "work"
}
],
addresses: [
{
addressLine1: "123 FAMILY ST",
addressLine2: "APT 1208",
city: "ATLANTA",
state: "GEORGIA",
zipCode: "12345"
},
{
addressLine1: "456 WORKING BLVD",
addressLine2: "",
city: "ATLANTA",
state: "GEORGIA",
zipCode: "12345"
}
]
}
]
},
{
contactGroup: "Friends",
count: 1,
contacts: [
{
member: "School Friend",
fullName: "HANS ZIMMER",
lastName: "ZIMMER",
firstName: "HANS",
email: "hans@pirates.com",
phoneNumbers: [
{
telephoneNumber: "267-455-1234",
type: "mobile"
}
],
addresses: [
{
addressLine1: "789 FRIEND ST",
addressLine2: "",
city: "SAN DIEGO",
state: "CALIFORNIA",
zipCode: "67890"
},
{
addressLine1: "234 CANARY ST",
addressLine2: "",
city: "SEATTLE",
state: "WASHINGTON",
zipCode: "67890"
}
]
}
]
}
]
};