Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript中的条件动态映射表中的嵌套循环?_Javascript_Arrays_Reactjs_Algorithm_Mapping - Fatal编程技术网

如何使用JavaScript中的条件动态映射表中的嵌套循环?

如何使用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 = (

我正试图用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 = (
                    <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)