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

JavaScriptJavaScriptBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") subgraph Lab Skills javascript/variables -.-> lab-28150{{"配列がソートされているかどうか"}} javascript/data_types -.-> lab-28150{{"配列がソートされているかどうか"}} javascript/arith_ops -.-> lab-28150{{"配列がソートされているかどうか"}} javascript/comp_ops -.-> lab-28150{{"配列がソートされているかどうか"}} javascript/cond_stmts -.-> lab-28150{{"配列がソートされているかどうか"}} javascript/loops -.-> lab-28150{{"配列がソートされているかどうか"}} javascript/array_methods -.-> lab-28150{{"配列がソートされているかどうか"}} end

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

コーディングの練習のために、ターミナル/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でさらに多くの実験を練習することができます。