JS Сортировка данных по алфавиту

170
16 августа 2018, 06:50

Как отсортировать это по name по алфавиту? Делаю так и это не работает.

        var views_new = {};
        Object.values(views)
          .sort(function(a, b) {
                var x = a.name;
                var y = b.name;
                return ((x < y) ? -1 : ((x > y) ? 1 : 0));
            }).forEach(function(v, i) {
              views_new[v.handle] = v;
           });

Использую это.

 {
  "row-content": {
    "handle": "row-content",
    "name": "Content",
    "isSubItem": true,
    "query": {
      "kind": "template",
      "type": "core",
      "content": "row",
      "group": "advanced",
      "category": "row-content",
      "categorized": true
    }
  },
  "undefined": {
    "type": "separator"
  },
  "columns": {
    "handle": "columns",
    "name": "Columns",
    "query": {
      "kind": "colGroup"
    },
    "templateName": "fl-content-panel-col-groups-view"
  },
  "pp-services": {
    "handle": "pp-services",
    "name": "Products",
    "isSubItem": true,
    "query": {
      "kind": "template",
      "type": "core",
      "content": "row",
      "group": "powerpacktemplates",
      "category": "pp-services",
      "categorized": true
    }
  },
  "pp-subscribe-forms": {
    "handle": "pp-subscribe-forms",
    "name": "Subscribe Forms",
    "isSubItem": true,
    "query": {
      "kind": "template",
      "type": "core",
      "content": "row",
      "group": "powerpacktemplates",
      "category": "pp-subscribe-forms",
      "categorized": true
    }
  },
  "pp-team": {
    "handle": "pp-team",
    "name": "Team",
    "isSubItem": true,
    "query": {
      "kind": "template",
      "type": "core",
      "content": "row",
      "group": "powerpacktemplates",
      "category": "pp-team",
      "categorized": true
    }
  },
  "pp-testimonials": {
    "handle": "pp-testimonials",
    "name": "Testimonials",
    "isSubItem": true,
    "query": {
      "kind": "template",
      "type": "core",
      "content": "row",
      "group": "powerpacktemplates",
      "category": "pp-testimonials",
      "categorized": true
    }
  },
  "row-call-to-action": {
    "handle": "row-call-to-action",
    "name": "Call to Action",
    "isSubItem": true,
    "query": {
      "kind": "template",
      "type": "core",
      "content": "row",
      "group": "advanced",
      "category": "row-call-to-action",
      "categorized": true
    }
  },
  "savedRows": {
    "handle": "savedRows",
    "name": "*Saved Rows",
    "templateName": "fl-content-panel-saved-rows",
    "query": {
      "kind": "template",
      "type": "user",
      "content": "row",
      "categorized": false
    }
  }
}
Answer 1

Написал пример, надеюсь то, что нужно.

https://stackblitz.com/edit/js-jcsokp?file=index.js

  • Использовал localCompare вместо обычного сравнения строк. Флаг ignorePunctuation, который говорит сам за себя, проигнорирует знаки пунктуации при сравнении строк. Иначе строка с * будет некорректно сравненна.
  • Приводил сравниваемые строки в lowerCase.
  • Поставил проверку на undefined. В противном случае, в результате будет ключ undefined.
READ ALSO
Ionic cordova Sqlite и Angular. Как подключить БД?

Ionic cordova Sqlite и Angular. Как подключить БД?

Имеется ionic 3, Angular и sqliteПеред развертыванием моб

202
Склонение существительных в javascript-таймере

Склонение существительных в javascript-таймере

От предыдущего владельца сайта мне достался следующий код, отсчитывающий время от определенной датыКод работает, но при этом в нем отсутствуют...

165
Очистка полей ввода

Очистка полей ввода

помогите пожалуйста решить задачуНеобходимо очистить 3000 полей на одной странице

162
Отправить post запрос на rest api контроллер

Отправить post запрос на rest api контроллер

Нужно отправить POST запрос на rest-api контроллер и получить ответ с помощью скрипта в приложении asp web formsСкрипт :

184