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);