Сортировка пунктов по алфавиту
Привет. Сюда в 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, время: 15:47. |