[TIL]9978日間航行

9027 ワード

問題シュート22.03.26~28


(実際の悩み時間は数時間足らずですが、完成時間まで試してみます)

過半数投票死亡時に表示されるモード画面



スパイ投票ウィンドウ(モード)を有効にして、死者が見られないようにします。


フォルダ構造


React-src
  • page -> ingame.js
  • component -> Modal.js
  • 私が思いついた方法

  • モデルウィンドウを露出することができないので、モデルアセンブリで
  • を行う.
  • の部屋では、ユーザリストにおいて、死後フィルタ
  • であることが確認する.
  • フィルタされたリストを条件文に入れ、
  • を試します.
     const user_list = useSelector((state) => state.vote.userList);
    
    
    const deadPerson = user_list.filter((user) => user.isEliminated === 'Y');
    
    console.log(deadPerson, '죽은 사람들 리스트');
    =>フィルタリング後の値は配列[{a,b,c}]でフィルタリングされ,条件文が適用されていないことが分かった.
    バカすぎる

    チームメンバーの考え方

  • 同様に、部屋内では、死んだユーザリストのみが
  • をフィルタリングする.
  • のフィルタ値からユーザIDを抽出する、
  • を抽出する.
    この値
  • を繰り返し、値のみを抽出し、新しい配列(プッシュ)
  • に挿入する.
  • 最後の変数の繰り返し宣言値(userId)とローカルストレージ登録のID値が同じかどうかは、もしそうであれば、
  • 操作を行って他のモードを暴露することを含む.
     const user_list = useSelector((state) => state.vote.userList);
    
    
    const isFired = user_list.filter((user) => user.isEliminated === 'Y');
    
    console.log(isFired, '죽은 사람들 리스트');
    
    //빈배열
    const isFireds = [];
    
    //해고 명단 반복문 돌려서 ID값 isFireds에 넣기
    isFired.forEach((id) => {
      isFireds.push(Object.values(id));
    });
    
    //해고 명단 ID 리스트에 본인 ID가 있다면 true반환
    const _isFired = isFireds[0].includes(parseInt(userId));
    
    =>私は方法を理解して、私はそれが成功すると確信していますが、反応の中で間違いが発生しました.
    なぜなら、ロードされたときに死んだプレイヤーがいないためundefined値に入り、その値を比較して読み込めないメッセージエラーを返すからです.

    上記のメソッドに条件文を追加


  • 新しく作成した配列の長さが0の場合は、任意の内容を追加します.
    =>このような変数を各モデルに入れると成功する.
  • // 처음 시작할 때 isFireds는 빈배열이기에 오류가 나서 밑에 코드 작성
    // 빈배열일때 undefined ID넣기
    if (isFireds.length === 0) isFireds.push('undefined Id');

    改造する

  • forEach文をmapに変更した後の同じinclude比較
  • const isFired = roomUserList.filter((user) => user.isEliminated === 'Y'); // 해고당한 명단
    
    const isFireds = isFired.map((user) => {
        return user.userId;
      });
      console.log(isFireds); // 리스트 중 userId만 반환 [1, 2...]
    
    
      const _isFired = isFireds.includes(parseInt(userId));
      console.log(_isFired, '불린형');
    これは私にとって古典的な機能です.
    今回私が一人で考えていた時も難しいと思っていましたが、他の人が手伝ってくれて、聞いてみると、私は一人で口ずさむ問題に時間を費やしすぎたことに気づきました.
    私たちを助けてくれた人たちに感謝します.