我不知道我在这里做错了什么,但是我可以迭代行,但是在Map时不能访问对象中的值()通过他们。有人能帮忙吗?我试图实现的事情是将创建的这个表嵌入到我的HTML模板中,以便nodemailer发送邮件。但不幸的是,我不能写表中的行,因为值没有定义,但是filtered.map(el,index)'el'记录了各行。
const result = results.rows
console.log(result);
let filtered = {};
teams.map(team=>{
filtered[team.value] = {
nvCount: 0,
nvTaken: 0,
vCount: 0,
vTaken: 0,
team:''
};
});
result.map(user => {
if (user.preference.includes("NON-VEG")) {
filtered[user.team].nvCount += 1;
filtered[user.team].team = String(user.team)
if (user.taken === true) {
filtered[user.team].nvTaken += 1;
}
} else if (user.preference.includes('VEG')) {
filtered[user.team].vCount += 1;
if (user.taken === true) {
filtered[user.team].vTaken += 1;
}
}
else{
console.log('Skipped');
}
});
let tableData = (
'<table>' +
'<thead>' +
'<th>Team</th>' +
'<th>Non-Veg</th>' +
'<th>Veg</th>' +
'<th>Total</th>' +
'</thead>'
);
{[filtered]?.map((el, index) => {
console.log(el);//gives rows
console.log(el.nvCount);//undefined
tableData += (
'<tr>' +
'<td>' + el.team + '</td>' +
'<td>' + el.nvCount + '</td>' +
'<td>' + el.vCount + '</td>' +
'<td>' + el.nvCount + el.vCount + '</td>' +
'</tr>'
);
})
}
tableData += '</table>';
console.log的结果(el):
{
Greeters: { nvCount: 2, nvTaken: 1, vCount: 0, vTaken: 0, team: 'Greeters' },
Cleaning: { nvCount: 1, nvTaken: 0, vCount: 0, vTaken: 0, team: 'Cleaning' },
Media: { nvCount: 0, nvTaken: 0, vCount: 1, vTaken: 0, team: '' },
Intercession: { nvCount: 0, nvTaken: 0, vCount: 0, vTaken: 0, team: '' },
'Kids-Church': { nvCount: 0, nvTaken: 0, vCount: 0, vTaken: 0, team: '' },
Kitchen: { nvCount: 0, nvTaken: 0, vCount: 0, vTaken: 0, team: '' }
}
1条答案
按热度按时间3yhwsihp1#
因为
filtered
是一个对象,所以应该使用for ... in
循环来迭代它的键: