【发布时间】:2021-09-19 02:27:45
【问题描述】:
我有两个数组,一个是简单数组,另一个是对象数组。
这是数组:-
arr1=["aadhar", "address", "email", "mobile", "name", "pancard", "voterid"];
arr2=[ {
"id": 21,
"name": "johndoe",
"email": "hello@gmail.com",
"address": "test address",
"voterid": "12131313",
"mobile": "1211313",
"aadhar": "213123131313",
"pancard": "HYG579AA"
},
{
"id": 24,
"name": "johndoe3",
"email": "hello1@gmail.com",
"address": "test address",
"voterid": "12111313",
"mobile": "1211313",
"aadhar": "112313131313",
"pancard": "YHUIHU88"
}];
我想在 arr1 中映射 arr2 以使用第一个 arr1 获取值。这是我尝试过的:
{arr2.map((item) => {
return (
<Tr key={item.id}>
{arr1.map((itx) => {
return <Td>{item.itx}</Td>;
})}
}
我希望项目像这样映射:-
item.aadhar
item.address
item.email
item.mobile
and so on...
但我无法在 dot 之后使用 itx 或 arr1 即 item.itx(未使用 itx)。
如果有什么方法可以告诉我。
【问题讨论】:
-
arr2.map(row => <tr key={row.id}>{arr1.map(item => <td key={row.id + '_' + item}>{row[item]}</td>)}</tr>) -
基本上你得到了正确的嵌套 map() 但你必须使用方括号表示法 (
item[itx]) 而不是点表示法 (item.itx) 因为itx是一个变量,而不是对象的属性名称。 -
将
item.itx替换为item[itx]。
标签: javascript arrays jsx array-map