Bu örnekte, bir dizi nesneyi özellik değerlerine göre sıralayacak bir JavaScript programı yazmayı öğreneceksiniz.
Bu örneği anlamak için, aşağıdaki JavaScript programlama konuları hakkında bilgi sahibi olmalısınız:
- JavaScript Dizisi sıralaması ()
- JavaScript Dizisi
- JavaScript Nesneleri
Örnek 1: Diziyi Özellik Adına Göre Sıralama
// 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));
Çıktı
((adı: "Jack", yaş: 25), (adı: "John", yaş: 24), (adı: "Sara", yaş: 24))
Yukarıdaki programda sort()
yöntem, bir diziyi nesne öğelerinin name özelliğine göre sıralamak için kullanılır.
sort()
Yöntem, özel bir sıralama işlevi (bu durumda compareName) tarafından döndürülen değerlere göre öğelerini sıralar.
Buraya,
- Özellik adları,
toUpperCase()
yöntem kullanılarak büyük harf olarak değiştirilir . - İki ismin karşılaştırılması 1 sonucunu verirse , sıraları değiştirilir.
- İki adın karşılaştırılması -1 veya 0 ile sonuçlanırsa , sıralamaları olduğu gibi bırakılır.
Örnek 2: Diziyi Özellik Yaşına Göre Sıralama
// 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));
Çıktı
((adı: "John", yaş: 22), (adı: "Sara", yaş: 24), (adı: "Jack", yaş: 27))
Yukarıdaki programda sort()
yöntem, bir dizi öğesini age özelliğine göre sıralamak için kullanılır.
İki nesnenin yaş özelliğini karşılaştırmak için, onları basitçe çıkarabiliriz.
- Farkları negatif bir değer ise sıraları değiştirilir.
- Farkları pozitif bir değer ise, sıra olduğu gibi bırakılır.