例1:プロパティ名で配列を並べ替える
// program to sort array by property name
function compareName(a, b) {
// converting to uppercase to have case-insensitive comparison
const name1 = a.name.toUpperCase();
const name2 = b.name.toUpperCase();
let comparison = 0;
if (name1 > name2) {
comparison = 1;
} else if (name1 < name2) {
comparison = -1;
}
return comparison;
}
const students = [{name: 'Sara', age:24},{name: 'John', age:24}, {name: 'Jack', age:25}];
console.log(students.sort(compareName));
出力
[{name: "Jack", age: 25}, {name: "John", age: 24}, {name: "Sara", age: 24}]
上記のプログラムでは、 sort()
メソッドは、配列を並べ替えるために使用されます 名前 そのオブジェクト要素のプロパティ。
ザ・ sort()
メソッドは、カスタムの並べ替え関数によって返された値に従って要素を並べ替えます(compareName この場合)。
ここに、
- プロパティ名は、を使用して大文字に変更されます
toUpperCase()
方法。 - 2つの名前を比較すると、 1、その後、それらの順序が変更されます。
- 2つの名前を比較すると、 -1または0、その後、それらの順序はそのままになります。
例2:プロパティの年齢で配列を並べ替える
// program to sort array by property name
function compareAge(a, b) {
return a.age - b.age;
}
const students = [{name: 'Sara', age:24},{name: 'John', age:22}, {name: 'Jack', age:27}];
console.log(students.sort(compareAge));
出力
[{name: "John", age: 22}, {name: "Sara", age: 24}, {name: "Jack", age: 27}]
上記のプログラムでは、 sort()
メソッドは、配列要素を 年齢 プロパティ。
比較するには 年齢 2つのオブジェクトのプロパティ、単純にそれらを差し引くことができます。
- 差が負の値の場合、順序が変更されます。
- それらの差が正の値の場合、順序はそのままになります。
Hope this helps!
Source link