Как отсортировать массив объектов через localeCompare()?

Как с помощью localComparse() мне отсортировать email, так чтобы те у кого отличаются только цифры, становились в порядке возрастания?

Я пытался сделать чтото в этом роде:

carsOwner = {
  data: [{
      car: "BMW",
      email: "[email protected]"
    },
    {
      car: "JAC",
      email: "[email protected]"
    },
    {
      car: "BMW",
      email: "[email protected]"
    },
    {
      car: "Tesla",
      email: "[email protected]"
    },
    {
      car: "Tesla",
      email: "[email protected]"
    },
  ]
}

function SortArray(x, y) {
  return x.email.localeCompare(y.email, 'kn');
}

const a = carsOwner.data.sort(SortArray);

console.log(a);

Но получаю совсем не то что хотелось бы + не понимаю как таким способом оно ходит по всем элементам массива и сравнивает их

Хотелось бы посмотреть на решение и получить ссылочку на ресурс (не мдн) где хорошо описана эта функция, заранее большое спасибо!


Ответы (1 шт):

Автор решения: ArsLoDDD

Отдельное спасибо @NNL993, который помог мне дальше разобраться.

Вобщем решение заключается в том, чтобы массив отсортировать с данной функцией:

function sortToSort(x, y) {
      return x.email.localeCompare(y.email, "en", { numeric: true });
    }

    data.sort() // Результат отсортированный массив, в котором email отсортирован и по алфавиту и по нумерации 
→ Ссылка