提问人:TheKamek 提问时间:10/19/2023 更新时间:10/19/2023 访问量:27
将逻辑移动到返回部分的映射中 [已关闭]
Move logic into map in return part [closed]
问:
所以我想通过移动它来简化这个代码
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 循环并完全依赖地图
我尝试四处走动并定义新的类型,但没有找到没有另一个地图/我不想要的解决方案
答:
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>
);
评论