JavaScriptオブジェクトを配列プロパティの長さで並べ替える方法
この記事では、各オブジェクトが持つ配列プロパティの要素数(length)を基準にして、JavaScriptのオブジェクトを並べ替える方法を解説します。
ポイントとなる仕組み
並べ替えには Array.prototype.sort() メソッドを使用します。sort() の引数として比較関数(コンパレータ)を渡し、2つのオブジェクトの配列プロパティの length を比較することで、要素数の少ない順(昇順)にソートできます。比較関数は、条件を満たす場合に 1 を、満たさない場合に -1 を返すように記述します。
サンプルコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
</style>
</head>
<body>
<h1>配列プロパティの長さでJavaScriptオブジェクトを並べ替える</h1>
<button class="Btn">CLICK HERE</button>
<h3>上のボタンをクリックすると、Subject配列の要素数に基づいてarrObj内のオブジェクトが並べ替えられます</h3>
<script>
let BtnEle = document.querySelector(".Btn");
let arrObj = [
{ name: "Rohan", Subject: ["Maths", "Science", "EVS", "SST"] },
{ name: "Mohan", Subject: ["Maths", "Science", "SST"] },
{
name: "Shawn",
Subject: ["Maths", "Physics", "Chemistry", "Biology", "German"],
},
{
name: "Michael",
Subject: ["Biology", "Hindi", "Sanskrit", "SST", "EVS", "Maths"],
},
];
BtnEle.addEventListener("click", () => {
arrObj.sort((a, b) => (a.Subject.length > b.Subject.length ? 1 : -1));
console.log(arrObj);
});
</script>
</body>
</html>
実行結果
上記のコードを実行すると、次のような画面が表示されます。

「CLICK HERE」ボタンをクリックした後、ブラウザの開発者ツール(コンソール)で出力を確認してみましょう。

コンソールを見ると、Mohan(3教科)→ Rohan(4教科)→ Shawn(5教科)→ Michael(6教科)の順に、Subject配列の要素数が少ないオブジェクトから順番に並べ替えられていることが確認できます。
-
JavaScriptオブジェクトのプロパティとは?基本とアクセス方法をわかりやすく解説
JavaScriptオブジェクトのプロパティとは JavaScriptにおける「プロパティ」とは、オブジェクトに関連付けられた値のことです。オブジェクトは「プロパティ名(キー)と値」のペアの集まりで構成されており、ドット記法(object.property)やブラケット記法(object[property])を使ってアクセスできます。 以下は、JavaScriptでオブジェクトのプロパティを実装したコード例です。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta charset=
-
JavaScriptでオブジェクトを新しい配列に変換する方法
JavaScriptでは、オブジェクトのプロパティやネストされたデータを取り出し、扱いやすい形で新しい配列にフォーマットできます。本記事では、学校(school)オブジェクトに含まれる生徒情報を、文字列形式の配列へ変換する実践的なコード例を紹介します。 ポイントとなるテクニック このサンプルでは、以下の2つのJavaScript機能を活用しています。 分割代入(Destructuring assignment):オブジェクトから特定のプロパティを簡潔に取り出す構文です。 for...of ループ:配列内の各要素を順番に処理するために使用します。 コード例 <!DOCTYPE html