2017-06-20 8 views
2

私は文字列の配列を持っていて、それらを別の行に出力したいと思います。map()関数内の配列の最後の要素であることを確認してください

私はこのために<hr />を使用していますが、これは私のコードにありますので、最後の文字列の後に別の改行を入れます。何か案は?

これは私のコードです:

return myArray.map((text, index) => (
    <span key={index}> 
     {myArray[index]} 
     {<hr />} 
    </span> 
)); 

答えて

6

次がある場合は、チェックすることによって、その最後の要素かどうかを確認することができます要素arr[i + 1]

var arr = ['a', 'b', 'c'] 
 
var html = arr.map(function(e, i) { 
 
    return `<span key="${i}">${e}</span>${arr[i+1] ? '<hr>' : ''}` 
 
}) 
 

 
document.body.innerHTML += html.join('')

+1

スパンでそれらをラップ: '<スパンキー= "$ {I}" ...'( '$ {$ {e}}の代わりに{{}}を使用します)。 – gus27

+0

@ gus27はい、ありがとうございます。 –

2
myArray.map((text, index, {length}) => (
    /* ... your code ... */ 
    if(index + 1 === length){ //last element 

    } 
)); 
//{length} === myArray.length; third argument is an array 
0

あなただけの反復indexif(index < (myArray.length-1))時にチェックする必要があります。

return myArray.map((text, index) => (
    <span key={index}> 
     {myArray[index]} 
     if(index < (myArray.length-1)) 
      {<hr />} 
    </span> 
)); 
2

はpragraphではなく、私は一つの小さな改善を持って

return myArray.map((text, index) => (
    <p key={index}> 
     {text} 
    </p> 
)); 
+0

それは非常に簡単で簡単な解決策ですが、私はまた


タグが必要です。文字列間の水平線のように見えるもの –

+0

CSSを追加できますか? –

関連する問題