制作ブログ Web制作マークアップJavaScript[連想配列]2つ以上のキーで並び替えをする

[連想配列]2つ以上のキーで並び替えをする

2つ以上のキーで連想配列を並び替えしたいときの備忘録。

サンプル配列
var arr = [];
arr.push(["5", "4", "たちつてと", 10]);
arr.push(["3", "6", "かきくけこ", 20]);
arr.push(["3", "6", "かきくけこ", 10]);
arr.push(["7", "2", "さしすせそ", 10]);
arr.push(["3", "2", "あいうえお", 50]);

連想配列の第1引数を並び替えをする場合

昇順
function funcCompare(a, b) {
	if (a[0] < b[0]) return -1;
	if (a[0] > b[0]) return 1;
	return 0;
}
arr.sort(funcCompare);
降順
function funcCompare(a, b) {
	if (a[0] < b[0]) return 1;
	if (a[0] > b[0]) return -1;
	return 0;
}
arr.sort(funcCompare);

連想配列の第一優先を第1引数、第二優先を第2引数で並び替えをする場合

第1引数、第2引数とも昇順
function funcCompare(a, b) {
	if (a[0] < b[0]) return -1;
	if (a[0] > b[0]) return 1;
	if (a[1] < b[1]) return -1;
	if (a[1] > b[1]) return 1;
	return 0;
}
arr.sort(funcCompare);

連想配列の第一優先を第1引数、第二優先を第2引数、第三優先を第4引数で並び替えをする場合

第1引数、第2引数とも昇順
function funcCompare(a, b) {
	if (a[0] < b[0]) return -1;
	if (a[0] > b[0]) return 1;
	if (a[1] < b[1]) return -1;
	if (a[1] > b[1]) return 1;
	if (a[3] < b[3]) return -1;
	if (a[3] > b[3]) return 1;
	return 0;
}
arr.sort(funcCompare);