JavaScript: сортування масиву об’єктів за значенням властивості

JavaScript: сортування масиву об’єктів за значенням властивості
JavaScript

Сортування об’єктів JavaScript за властивістю String

Сортування масивів об’єктів є поширеним завданням у JavaScript, особливо під час роботи з даними, які потрібно відображати в певному порядку. Один типовий сценарій передбачає сортування масиву об’єктів за значенням властивості рядка, наприклад прізвищем або назвою.

У цій статті ми розглянемо, як сортувати масив об’єктів JavaScript за значенням властивості рядка. Ми розглянемо використання методу `sort()` і обговоримо, чи потрібні додаткові кроки, наприклад додавання методу `toString()` до об’єктів.

Команда опис
sort(function(a, b) {...}) Визначає спеціальну функцію сортування для визначення порядку елементів масиву на основі певних критеріїв.
localeCompare() Порівнює два рядки в поточній локалі, повертаючи число, яке вказує, чи стоїть рядок посилання до чи після, чи збігається з даним рядком.
console.log() Виводить інформацію на консоль, як правило, для налагодження.

Детальне пояснення сортування об’єктів JavaScript

Наведені вище сценарії призначені для сортування масиву об’єктів JavaScript за значенням викликаної властивості рядка last_nom. У першому прикладі ми використовуємо sort(function(a, b) {...}) метод, який дозволяє нам визначити спеціальну функцію сортування. Ця функція порівнює last_nom властивості кожного об'єкта. Якщо перший об'єкт last_nom менше, ніж у другого об'єкта last_nom, він повертає -1, вказуючи, що перший об’єкт має стояти перед другим. Якщо перший об'єкт last_nom більший, він повертає 1, тобто перший об’єкт має бути після другого. Якщо вони рівні, повертається 0, вказуючи, що їхні позиції повинні залишатися незмінними.

Другий сценарій використовує більш стислий синтаксис ES6. The localeCompare() метод використовується в межах sort() функція для порівняння last_nom властивості об'єктів. Цей метод повертає число, яке вказує, чи стоїть рядок до, після або збігається з іншим рядком у поточній локалі. The console.log() функція використовується в обох сценаріях для виведення відсортованого масиву на консоль для перевірки. Обидва методи ефективно сортують масив об’єктів за last_nom властивість, демонструючи, як обробляти сортування властивостей об’єктів у JavaScript.

Сортування масиву об’єктів за властивістю рядка в JavaScript

JavaScript на стороні клієнта

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

Сортування масиву об’єктів за властивістю рядка за допомогою синтаксису ES6

ES6 JavaScript

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

Сортування масиву об’єктів за властивістю рядка в JavaScript

JavaScript на стороні клієнта

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

Сортування масиву об’єктів за властивістю рядка за допомогою синтаксису ES6

ES6 JavaScript

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

Розширені методи сортування об’єктів у JavaScript

Під час сортування масиву об’єктів за властивістю рядка в JavaScript важливо розуміти тонкощі sort() метод. За замовчуванням, sort() метод сортує елементи як рядки. Це може призвести до неочікуваних результатів при роботі з числами або спеціальними символами. Щоб забезпечити точне сортування, особливо з властивостями рядка, вам слід використовувати спеціальну функцію порівняння. На додаток до localeCompare(), ще одна корисна техніка полягає в обробці чутливості до регістру. Порівняння рядків JavaScript за замовчуванням чутливе до регістру, тому «a» вважатиметься меншим за «A». Щоб уникнути цього, ви можете перетворити всі рядки на нижній або верхній регістр у вашій функції порівняння.

Ще один важливий аспект, який слід враховувати, — сортування за кількома властивостями. Наприклад, якщо два об’єкти мають однакові last_nom значення, ви можете додатково відсортувати їх за first_nom. Цього можна досягти, розширивши спеціальну функцію порівняння, включивши додаткові умови. Таке багаторівневе сортування гарантує всебічне впорядкування даних, забезпечуючи більш значущі результати. Розуміючи та застосовуючи ці вдосконалені методи сортування, ви зможете ефективно обробляти складніші сценарії сортування даних у JavaScript.

Поширені запитання щодо сортування об’єктів JavaScript

  1. Як відсортувати масив об’єктів за властивістю рядка?
  2. Використовувати sort() метод із спеціальною функцією порівняння, використовуючи localeCompare() для порівняння рядків.
  3. Сортування JavaScript чутливе до регістру?
  4. Так, за замовчуванням. Перетворюйте рядки на нижній або верхній регістр у функції порівняння, щоб уникнути цього.
  5. Як ви обробляєте сортування за кількома властивостями?
  6. Розширте спеціальну функцію порівняння, включивши додаткові умови для сортування за вторинними властивостями.
  7. Чи потрібно вам додати a toString() метод для ваших об’єктів для сортування?
  8. Ні, достатньо використовувати спеціальну функцію порівняння.
  9. Що робить localeCompare() робити?
  10. Він порівнює два рядки в поточній локалі та повертає число, що вказує їх порядок.
  11. Чи можете ви сортувати об’єкти за числовими властивостями, використовуючи той самий метод?
  12. Так, ви можете налаштувати функцію порівняння для обробки числових порівнянь.
  13. Як вивести відсортований масив?
  14. використання console.log() щоб надрукувати відсортований масив на консоль для перевірки.
  15. Яке значення повернених значень у функції порівняння?
  16. Вони визначають порядок елементів: -1 для меншого, 1 для більшого та 0 для рівного.

Завершення сортування об’єктів у JavaScript

Сортування масиву об’єктів за властивістю рядка в JavaScript можна ефективно досягти за допомогою sort() метод із спеціальною функцією порівняння. За допомогою левериджів localeCompare() і обробка чутливості до регістру, ви можете забезпечити точне та значуще сортування даних. Розуміння цих методів дозволяє краще маніпулювати та подавати дані, з легкістю задовольняючи складніші сценарії. Крім того, сортування за декількома властивостями додає ще один рівень витонченості, роблячи відсортований результат більш релевантним і організованим.