ハンバーガーメニュー

Menu

← Quiz 一覧に戻る

Array.prototype.toSorted() - JavaScript | MDN

Array.prototype.toSorted() が配列だけでなく「配列ライクなオブジェクト」に対しても動作するとき、this に length プロパティが必要とされる理由を、処理の流れを意識して説明してください。

🟡 応用⭐ Familiar1回出題済み記事を読む →

模範解答

toSorted() はまず this の length プロパティを参照し、その長さに従って要素を読み込み、内部でコピーしたデータをソートします。そのため、length がないとどれだけの要素を対象にすべきか判定できず、配列ライクとしての前提が崩れるので、length プロパティが必要とされています。

🔑 toSorted() が length に基づいて要素数を決定し、配列ライクなオブジェクトとして処理する前提を理解しているか。


回答履歴 (1回)

#1   2026.03.08正解 (4/5)

あなたの回答

toSortedの流れとして、キーが0から順番に要素を検査していくので、lengthが無いとキーのゴールが分からなくなってしまう。 lengthで要素数が分かれば、0からその値までを順番に見ていくだけで良い。オブジェクトでも、キーが0から5で、lengthプロパティに6が入っていれば動くことになるはず

フィードバック

toSorted はまず this.length を読み取り、その値をもとに 0 から length-1 までのインデックスを要素として扱います。ユーザーの回答は「length がないとどこまで走査すべきかわからない」という点を正しく押さえています。また、配列ライクなオブジェクトが 0 から始まる連番キーと length を持てば動作する、という理解も概ね正しいです。仕様的には「length に基づいてコピー・ソートの対象範囲を決める」という点を明示できると、より完全な説明になります。