将逻辑移动到返回部分的映射中 [已关闭]

Move logic into map in return part [closed]

提问人:TheKamek 提问时间:10/19/2023 更新时间:10/19/2023 访问量:27

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答这个问题。

上个月关闭。

所以我想通过移动它来简化这个代码

for (let i = 0; i <= 15; i++) {
    const generationId: number = shuffeledIdArray[i];

    cards.push({
      element: (
        <Card
          randomId={generationId}
          hideShowCard={cardHideShowDefault}
          cards={shuffeledCards}
        />
      ),
      id: generationId.toString(),
      state: cardHideShowDefault,
      cards: shuffeledCards,
    });
  }

我想把它移到这部分


  return (
    <div className={styles.mainDiv}>
      <div className={styles.flexgameboard}>

        {cards.map((card, index) => ( //Around here//

          <div className={cardHideShowDefault} key={card.id}>
            {card.element}
          </div>
        ))}

这样我就可以摆脱 for 循环并完全依赖地图

我尝试四处走动并定义新的类型,但没有找到没有另一个地图/我不想要的解决方案

ReactJS 移动 简化 TSX Array.prototype.map

评论

0赞 Camilo 10/19/2023
您收到什么错误或意外输出?
0赞 TheKamek 10/20/2023
没有,但它只是关于简化
0赞 Camilo 10/20/2023
也许试试这里?codereview.stackexchange.com
1赞 Toby Speight 10/20/2023
没有@Camilo - 代码审查适用于已经完成的代码,令程序员满意。你可以把提问者指向 A guide to Code Review for Stack Overflow users,因为有些事情在那里是不同的 - 例如,我们需要对代码的目的进行一个很好的描述,以提供上下文,而问题标题应该简单地说明代码的用途(问题总是,“我怎样才能改进它?代码正常工作很重要;如果可能,包括单元测试。

答:

2赞 Ardit Mirashi 10/19/2023 #1

简化代码的一个好方法是声明一个长度为 16 的数组,并按如下方式使用它:

return (
  <div className={styles.mainDiv}>
    <div className={styles.flexgameboard}>
      {new Array(16).fill(0).map((item, index) => {
        const cardId = shuffeledIdArray[index];

        return (
          <div className={cardHideShowDefault} key={cardId}>
            <Card
              randomId={cardId}
              hideShowCard={cardHideShowDefault}
              cards={shuffeledCards}
            />
          </div>
        );
      })}
    </div>
  </div>
);