【React】配列の要素を使って真偽値を返すにはsomeを使う

4430 ワード

コード

真偽値を返す変数
const animalArray = [{animal: "dog", age: 7}, {animal: "cat", age: 1}]
const isCat = animalArray.some((animal)=>{
  return animal.name === "cat"
)}
真偽値を使うtsx
return(
  <>
    {
      isCat ? (
        <div>この動物は猫です</div>
      )
    }
  </>
)

説明

mapやfilterでやろうとしたが、
そもそもmapやfilterなら配列を使って、別の配列を返すので[undefined]となるためtrueになったりで、
レンダーの条件にできなかった。

someを使って、

const 真偽値を格納する変数 = 条件分岐の元となる配列.some((配列の1要素)=>{
  return 条件
)}

とすると希望通りの動きになった。

参考記事