为什么 typescript (tsx) 在 map 使用两次时不 return html?

Why typescript (tsx) doesn't return html when map is using twice?

我用这种方法制作了数组:

  const newArray: Array<Array<any>> = [];

  for (let i = 0; i < codeData?.length; i++) {
    if (i % 3 === 1) {
      newArray.push([codeData[i - 1], codeData[i], codeData[i + 1]].filter(el => el !== undefined));
    }

  }

但是当我尝试映射它两次时它没有 return HTML ,但是当我将最后一个映射的值设置到控制台时它 return 就是我需要:

                 {newArray
                ?.slice(
                  page * rowsPerPage,
                  page * rowsPerPage + rowsPerPage
                )
                ?.map((arr: any) => {
                  arr
                    .filter((element) => element !== undefined)
                    .map((row: any) => {
                      return (
                        <TableRow
                          role="checkbox"
                          key={row.id}
                          className={classes.row}
                        >
                          {row.id}
                        </TableRow>
                      );
                    });
                })}

我想这是因为打字稿,据我所知,有这个动态 - [] 但是当我使用地图两次时它有 - [[]].

有人可以帮助我吗?

map return 一个数组,如果你嵌套它们,你也会得到嵌套数组。

如果您将第一个 map 更改为 flatMap,它会将结果合并为一个数组。