【发布时间】:2020-11-21 06:50:20
【问题描述】:
此对象包含 --> 数组 --> 对象。使用 for/foreach 或其他方法我需要迭代表中的 ROW。这是 React JSX 代码。有人可以帮我理解该怎么做吗?
a:{
bb: [{}],
cc: [{}],
dd: [{}]
}
我需要使用动态“key”迭代对象“a”,并使用嵌套对象中的属性在 Table 中呈现 JSX Row 代码。
render() {
const {
data: {
drivers: { user, month, year, createdAt },
},
} = this.props;
let DriverCommissionResults = {};
let recent = "";
let combinedUser = {};
DriverCommissionResults = {
"Jane": 200,
"Ann": 100,
"Kevin": 50,
}
for (const [key, value] of Object.entries(DriverCommissionResults)) {
combinedUser[`${key}`] = user.reduce(function (filtered, option) {
if (option.username === key) {
var someNewValue = {
userId: option.userId,
username: option.username,
createdAt: option.createdAt,
ranking: option.ranking,
year: option.year,
month: option.month,
handle: option.handle,
initialSalary: option.initialSalary,
salary: option.salary,
drunkenPesentage: option.drunkenPesentage,
newTotalCommission: value,
};
filtered.push(someNewValue);
}
return filtered;
}, []);
}
for (const [key, value] of Object.entries(DriverCommissionResults)) {
recent = combinedUser[`${key}`].map((filteredPerson) => (
<RowComponent
newSalary={filteredPerson.initialSalary}
key={filteredPerson.userId}
member={filteredPerson}
card={cardMode}
newTotalCommission={filteredPerson.newTotalCommission}
/>
));
}
return (
<Fragment>
<table>
<thead>
<tr>
<th>Handle</th>
<th>InitialSalary</th>
<th>Salary</th>
</tr>
</thead>
<tbody>{recent}</tbody>
</table>
</Fragment>
}
console.log(combinedUser);
{Jane: Array(1), Ann: Array(1), Kevin: Array(1)}
{
Jane: [{handle: "Jane", username: "Jane", salary: 40000, initialSalary: 40100, }],
Ann: [{handle: "Ann", username: "Ann", salary: 50000, initialSalary: 50100,}],
Kevin: [{handle: "Kevin", username: "Kevin", salary: 30000, initialSalary: 30100,}],
}
输出
处理 InitialSalary Salary
凯文 30000 30100
预期输出
处理 InitialSalary Salary
简 40000 40100
安50000 50100
凯文 30000 30100
【问题讨论】:
标签: javascript arrays reactjs object jsx