Сортировка пунктов по алфавиту
Привет. Сюда в newItems по одному попадают пункты меню. Как отсортировать их все по алфавиту?
headerFilter: { dataSource: function(options){ options.dataSource.postProcess = function (results) { let x = results.reduce(function(map, entry) { let newItems = entry.value.split('|'); //--------------------------newItems.sort() return map.concat(newItems); }, []) .filter((e, i , arr) => arr.indexOf(e) === i && e.length) .map((e, i , arr) => ({text:e, value:['e', 'contains', e]})); return x; }; } }, Подсказали следующий код, но применить затрудняюсь: .sort(function(a, b) { var nameA = получить из а имя; var nameB = получить из b имя; if (nameA < nameB) { return -1; // сначала nameA } if (nameA > nameB) { return 1; // сначала nameB } return 0; // они одинаковые }) |
hdma,
:-? .filter((e, i , arr) => arr.indexOf(e) === i && e.length) .sort(function(a, b) { var nameA = a; var nameB = b; if (nameA < nameB) { return -1; // сначала nameA } if (nameA > nameB) { return 1; // сначала nameB } return 0; // они одинаковые } ).map//... |
Увы, не сработало.
|
hdma,
что не так? <script> let results = [{ value: 'b||||g|c' }, { value: 'm|f|c||a' }]; let postProcess = function(results) { let x = results.reduce(function(map, entry) { let newItems = entry.value.split('|'); return map.concat(newItems); }, []) .filter((e, i, arr) => arr.indexOf(e) === i && e.length) .sort(function(a, b) { var nameA = a; var nameB = b; if (nameA < nameB) { return -1; // сначала nameA } if (nameA > nameB) { return 1; // сначала nameB } return 0; // они одинаковые }) .map((e, i, arr) => ({ text: e, value: ['e', 'contains', e] })); return x; }; let temp = postProcess(results); document.write(`<pre>${JSON.stringify(temp, "", 1)}</pre>`) </script> |
рони,
возможно, это связано с особенностями виджета? Вот, прошу взглянуть — https://disk.yandex.ru/d/FwA4xd2_iCwprQ — файл "index.js", строка №230. Проверяется из HTML-файла, по кнопке, как на скрине: ![]() |
hdma,
могу только погадать, фильтр заголовков никак не влияет на позицию заголовков, и сортировать надо что-то другое. |
продолжение гадания, где-то надо включить параметр allowSorting : true и возможно описать этот метод.
|
Часовой пояс GMT +3, время: 12:48. |