【javascript】配列の並び替えreverse()とsort() 昇降順の並び替えの仕方
array.reverse()
数字でも文字列でも、最後から順番に並び替えられます。
// 数字
const number = [1, 2, 3, 4, 5];
number.reverse(); // => [5, 4, 3, 2, 1]
// アルファベット(文字列)
const arf = ["a", "b", "c", "d", "e"];
arf.reverse(); // => ["e", "d", "c", "b", "a"]
array.sort()
数字
バラバラの数字が小さい方から順(昇順)に並び変えられます。
// 数字
const number = [2, 4, 5, 3, 1];
number.sort(); // => [1, 2, 3, 4, 5]
sort(関数)で、大きい順(降順)に並び変えることができます。
// 数字
const number = [2, 4, 5, 3, 1];
// 数字を逆に並べる関数
function compareNum(a, b) {
return b - a;
}
number.sort(compareNum); // => [5, 4, 3, 2, 1]
文字列
アルファベットの場合、abc順に並び替えられます。
// 文字列
const arf = ["e", "b", "d", "c", "a"];
arf.sort(); // => ["a", "b", "c", "d", "e"]
仮名の場合、五十音順に並び替えられます。
// 文字列
const kana = ["た", "か", "さ", "な", "あ"];
kana.sort(); // => ["あ", "か", "さ", "た", "な"]
sort(関数)で、逆に並び変えることができます。
// 文字列
const arf = ["e", "b", "d", "c", "a"];
const kana = ["た", "か", "さ", "な", "あ"];
// 文字列を逆から並び替える関数
function compareStr(a, b) {
if (a > b) {
return -1;
}
if (a < b) {
return 1;
}
return 0;
}
arf.sort(compareStr); // => ["e", "d", "c", "b", "a"]
kana.sort(compareStr); // => ["な", "た", "さ", "か", "あ"]
連想配列の並び替え
以下関数内のpriceをnameに、 負(-)を正(+)に入れ替えることにより、並び替える基準や昇降順を変えられます。
// 文字列
const fruits = [
{ name: "apple", price: 120 },
{ name: "mango", price: 690 },
{ name: "orange", price: 190 },
{ name: "banana", price: 290 },
{ name: "melon", price: 780 },
];
// 関数
function compareFruit(a, b) {
if (a.price > b.price) {
return 1;
}
if (a.price < b.price) {
return -1;
}
return 0;
}
fruits.sort(compareFruit);
// (5) [{…}, {…}, {…}, {…}, {…}]
// 0: {name: "apple", price: 120}
// 1: {name: "orange", price: 190}
// 2: {name: "banana", price: 290}
// 3: {name: "mango", price: 690}
// 4: {name: "melon", price: 780}
参考
array.reverse() : 配列の中を逆から並び替え。
array.sort() : 配列の中を昇順に並び替え。
array.sort(関数) : 関数により降順に並び替え可能。