配列がソートされているかどうか

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、JavaScript の isSorted 関数を使って、数値配列が昇順または降順にソートされているかどうかを判断します。降順の場合は最終的な方向値を -1 に、昇順の場合は 1 に変換するために Math.sign() メソッドを使います。また、配列が空、要素が 1 つだけ、または隣接する配列要素の方向が変化する場合も処理します。

コード演習:配列がソートされているかどうかを確認する

コーディングの練習のために、ターミナル/SSH を開き、node と入力します。

ここに、数値配列がソートされているかどうかを確認する関数があります。

const isSorted = (arr) => {
  if (arr.length <= 1) return 0;
  const direction = arr[1] - arr[0];
  for (let i = 2; i < arr.length; i++) {
    if ((arr[i] - arr[i - 1]) * direction < 0) return 0;
  }
  return Math.sign(direction);
};

これを使用するには、数値の配列を isSorted() に渡します。配列が昇順にソートされている場合は関数は 1 を返し、降順にソートされている場合は -1 を返し、ソートされていない場合は 0 を返します。

以下はいくつかの例です。

isSorted([0, 1, 2, 2]); // 1
isSorted([4, 3, 2]); // -1
isSorted([4, 3, 5]); // 0
isSorted([4]); // 0

まとめ

おめでとうございます!あなたは「配列がソートされているかどうか」の実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を練習することができます。