疎な配列
CoddyのJavaScriptジャーニー「論理とフロー」セクションの一部。レッスン 49/65。
JavaScriptのスパース配列とは、要素の間に空のスロットまたはギャップがある配列です。これらのギャップは、連続していないインデックスに値を割り当てたときや、配列から要素を削除したときに作成されます。
疎配列を作成する例を次に示します:
let sparseArray = [1, , , 4, 5];
console.log(sparseArray.length); // 5
console.log(sparseArray); // [1, empty × 2, 4, 5]現在の長さを超えるインデックスに代入することでも、疎配列を作成できます。
let arr = [1, 2, 3];
arr[10] = 10;
console.log(arr); // [1, 2, 3, empty × 7, 10]
console.log(arr.length); // 11空のスロットはundefinedを保持するスロットと同じではありませんが、arr[i]を読み取ると、どちらの場合もundefinedになります。両者を区別するには、in演算子を使ってインデックスが存在するかどうかを確認します:
let sparseArray = [1, , , 4, 5];
console.log(1 in sparseArray); // false、スロット1は空です
console.log(0 in sparseArray); // true、スロット0は1を保持していますチャレンジ
簡単スパース配列を引数として受け取る、analyzeSparseArrayという関数を作成してください。この関数は、次のプロパティを持つオブジェクトを返す必要があります。
length:配列の全体の長さelementCount:配列内の空でない要素の数largestGap:配列内で最大のギャップ(連続する空のスロット)のサイズ
自分で試してみよう
function analyzeSparseArray(arr) {
// ここにコードを書いてください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
自分で練習してみよう: JavaScriptオンラインコンパイラ