如何使用JavaScript中的条件动态映射表中的嵌套循环?
我正试图用React中的一些条件映射我的表。我的表有12列(一年中的月份)。我有一个提供“MM”数字的json响应。我硬编码了一个从['01',…,'06',…,'12'开始的'MM'数组如何使用JavaScript中的条件动态映射表中的嵌套循环?,javascript,arrays,reactjs,algorithm,mapping,Javascript,Arrays,Reactjs,Algorithm,Mapping,我正试图用React中的一些条件映射我的表。我的表有12列(一年中的月份)。我有一个提供“MM”数字的json响应。我硬编码了一个从['01',…,'06',…,'12'开始的'MM'数组 let monthNum = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'] // json response: month = ['01', '05', '02'] tableBody = (
let monthNum = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
// json response: month = ['01', '05', '02']
tableBody = (
<tr>
{monthNum.forEach((day, idx) => {
month.forEach((d,i) => {
if(d === day) {
time = 'X'
month.splice(d[i], 1)
}
else {
time = 'O'
}
})
return <td>{time}</td>
})}
</tr>
)
// Output: X X O O X X X X X X X X
// Expected Output: X X O O X O O O O O O O
让monthNum=['01','02','03','04','05','06','07','08','09','10','11','12']
//json响应:月=['01','05','02']
表体=(
{monthNum.forEach((日,idx)=>{
每个月((d,i)=>{
如果(d==天){
时间='X'
月份(d[i],1)
}
否则{
时间='O'
}
})
返回{time}
})}
)
//输出:X X O X X X
//预期输出:X X O X O O O O
也许有一种更简单的方法可以做到这一点,我只是把它弄得更复杂了…你可以在你的
月份上使用.includes()
来检查你正在映射的月份是否在你的月份数组中。如果是,您可以显示X
If;如果不是,您可以这样显示O
:
const monhtable=()=>{
const monthNum=['01','02','03','04','05','06','07','08','09','10','11','12'];
恒月=['01','05','02'];
返回(
{
monthNum.map(m=>{month.includes(m)?'X':'O'})
}
);
}
render(,document.body)代码>