解説
「比較関数」(compare function)は、ソート関数に渡して使う、各要素の並び順を判定させるための関数のことです。
多くの場合、比較関数では、第一引数と第二引数から値を取ります。そして、マイナスの値を返すと第一引数の要素を前に、プラスの値を返すと第二引数の要素を後ろに移動します。0の場合の処理は、プログラミング言語や実装によります。
比較関数を使うことで、数値や文字列といったプリミティブな値だけでなく、配列やオブジェクトといった要素を比較して並べ換えることができます。
サンプル
「比較関数」のサンプルです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>「比較関数」のサンプル</title>
<style> #output { font-size: 32px; line-height: 1.5; } </style>
</head>
<body>
<pre id="output"></pre>
<script>
window.addEventListener('DOMContentLoaded', e => {
// 出力用の関数
const print = function() {
const el = document.querySelector('#output');
el.textContent += Array.from(arguments).join(':') + '\n';
};
const array = [
{name: '山田', score: 76},
{name: '鈴木', score: 99},
{name: '佐藤', score: 65},
{name: '本田', score: 80},
{name: '川口', score: 82}
];
print('オブジェクトをソート');
array.sort(function(a, b) {
return b.score - a.score;
});
array.forEach(x => print(JSON.stringify(x)));
});
</script>
</body>
</html>
オブジェクトをソート
{"name":"鈴木","score":99}
{"name":"川口","score":82}
{"name":"本田","score":80}
{"name":"山田","score":76}
{"name":"佐藤","score":65}
この記事は参考になりましたか?
既に会員の方はを行ってください。
- マンガで分かるプログラミング用語辞典連載記事一覧
- この記事の著者
-
柳井 政和(ヤナイ マサカズ)
クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
