js リストの並び順比較処理

reactで、propsから渡ってきている初期リストと
画面上でsortしてstateに保存しているリストの並び順を比較した時のメモ。
戻り値のbooleanとbreak用のreturn falseがややこしいから戻り値を変数に格納してます forEachはbreakできないね!

  /**
   * 並び順が変更されたか判定
   */
  isSorted() {
    let isSorted: boolean = false;
    const defaultOrderList = this.props.targetList
      .slice()
      .sort((a: ContentsInfo, b: ContentsInfo) => {
        return a.sort_no - b.sort_no;
      });

    this.state.currentData.forEach((v: any, index: number) => {
      if (
        v.sort_no !==
        defaultOrderList[index].sort_no
      ) {
        isSorted = true;
        return;
      }
    });
    return isSorted;
  }