1 Haziran 2020 Pazartesi

Array sort metodu

sort metodu
Açıklaması şöyle.
The sort() method sorts the elements of an array in place and returns the sorted array.
Sayı Sıralamak
Açıklaması şöyle.
By default, the sort() method sorts the values as strings in alphabetical and ascending order.
This works well for strings ("Apple" comes before "Banana"). However, if numbers are sorted as strings, "25" is bigger than "100", because "2" is bigger than "1".
Because of this, the sort() method will produce an incorrect result when sorting numbers.
You can fix this by providing a "compare function".
sayıları sıralamak için (a -b)  formülü kullanılır.

Örnek - string
Elimizde şöyle bir kod olsun.
{
  "8 am": 2,
  "11 am": 6,
  "12 pm": 3,
  "5 pm": 7,
  "1 pm": 0
}
Şöyle yaparız.
onst ordered: any = {};
Object.keys(groupedData).sort().map((key) => {
     ordered[key] = groupedData[key];
});
Çıktı olarak şunu alırız.
{
  "1 pm": 0,
  "8 am": 2,
  "11 am": 6,
  "12 pm": 3,
  "5 pm": 7,
}
Örnek - sayı
sort sadece string'e göre çalıştığı için sayılarda şöyle yaparız.
let myArray = [6,7,3,5,4,1,45];
myArray.sort((n1, n2) => n1 - n2);
// result => [1, 3, 4, 5, 6, 7, 45]
Örnek - sayı
Sadece tek sayıları sıralayıp çift sayılara dokunmamak isteyelim. Şöyle yaparız. sortedOdd tek sayıları sıralanmış saklar. oddIndices tek sayıların indekslerini saklar. shift() metodu ile tek sayı indeksi okunur ve her inkdese teker teker sıralanmış tek sayı yerleştirilir.
function oddSort(array) {
  const oddIndicies = [];
  const newArr = array.slice();
  const sortedOdd = array.reduce((arr, val, index) => {
    if (val % 2 !== 0) {
      arr.push(val);
      oddIndicies.push(index);
    }
    return arr;
  }, [])
  .sort((a, b) => a - b);
  while (oddIndicies.length > 0) {
    newArr[oddIndicies.shift()] = sortedOdd.shift();
  }
  return newArr;
}

console.log(oddSort([5, 3, 2, 8, 1, 4]));
console.log(oddSort([5, 3, 2, 8, 1, 4, 11 ]));
Çıktı olarak şunu alırız
[1, 3, 2, 8, 5, 4]
Örnek
Elimizde şöyle bir kod olsun.
var Comparison = [
  {key: "None", value: "None"},
  {key:"Geographical Area", value:"Geographical_Area"},
  ...
];
Şöyle yaparız.
var Comparison_sort = this.Comparison.sort(function (a, b) {
  if (a.key < b.key)
      return -1;
  if (a.key > b.key)
      return 1;
  return 0;
});

Hiç yorum yok:

Yorum Gönder