2017-01-10 81 views
0

有這個循環中反應:我如何的規則只適用於某些元素陣列

<div> 
    {this.state.dealersDeck.map(function(card, index){ 
     return <div className="cardFormatDH" key={ index }> {card.rankKey}{card.suit} </div>; 
    }, this)} 
</div> 

此經過對象的數組,然後使它們在屏幕上。除了我想格式化外,這一切都很好,所以我只在某些點顯示內容。即我正在創造二十一點,我不希望經銷商的第二張牌直到最後纔可見。

我可能會表現出更多的代碼,但不知道是否map有某種屬性,我可以用的。

回答

0

您可以使用地圖功能裏面基本if ... else語句爲好。此外,您還可以編寫更多業務邏輯來添加更多功能。

var cardsHTML = this.state.dealersDeck.map(function(card, index){ 

    if(condition...1){ 
     return <div className="cardFormatDH" key={ index }> {card.rankKey}{card.suit} </div> 
    } 

    if(condition...2){ 
     return <div></div> 
    } 
} 
+0

我試圖此時: '如果(this.state.dealersDeck [1]){ 返回

{'-'}{'-'}
; } else { return
{card.rankKey}{card.suit}
; }' 但它將所有卡片更改爲新樣式 –

+0

好的解決了它。歡呼聲 –

+0

@Theworm真棒! – Abhinav

1

你可以基於一個布爾值道具添加到每個卡和渲染:

<div> 
    {this.state.dealersDeck.map(function(card, index){ 
     return { card.display && 
      <div className="cardFormatDH" key={ index }>{card.rankKey} {card.suit} </div> 
     } 
    }, this)} 
</div> 
+0

但我不知道它是卡因爲這將是不同的每 –