2つの配列で重複値を検索

1453 ワード

2つの異なる配列では、共通の値gameNoを見つけて削除し、新しい配列に戻る必要があることがあります.
いずれにしても、filterは戻り条件を満たす要素だけを収集して新しい配列を作成するので、filterにfilterを加えて関数を作成します.
 const writeDate = resGame.data.content.filter((playGame) =>
        review.data.content.filter(
          (review) => review.gameUserNo !== playGame.gameUserNo
        )
      )
でも値段がない重複値は削除されませんでした.
!======に変えても、結果は同じです.フィルタ内のフィルタはtrue false値のみを除外するため、親フィルタに新しい配列を作成できますが、フィルタ関数ではtrue値のみを出力します!=====を使用しても、値は同じです.
const writeDate = resGame.data.content.filter((playGame) => 
     !review.data.content.filter(
       (review) => review.gameUserNo === playGame.gameUserNo
     )
   )
共通値をbooleanに設定することで、重複値をうまく除去できます.
フィルターを使わずにfindやsomeでもいいと思ったので試してみましたが、結果は良かったです.
   const writeDate = resGame.data.content.filter((playGame) => {
        return !review.data.content.some(
          (review) => review.gameUserNo === playGame.gameUserNo
        )
      })
   const writeDate = resGame.data.content.filter((playGame) => {
        return !review.data.content.find(
          (review) => review.gameUserNo === playGame.gameUserNo
        )
      })
2つの配列から重複値を除去する他の方法もあるかもしれません.
  • コメントリンク
  • reduceの使い方も考えてみましょう.