У меня есть список, который мне нужно отсортировать.
['Product ED', 'Product CX', 'Product XY', 'Product ED']
Этот список должен быть отсортирован после определенного правила:
['CX', 'XY', 'ED']
Итак, в конце список имеетбыть заказанным после этого правила, например:
['Product CX', 'Product XY', 'Product ED', 'Product ED']
Как бы вы реализовали алгоритм, подобный этому?
РЕДАКТИРОВАТЬ: Ну, я пришел к простой идее сразу после того, как я написал этовопрос ...
Вот оно:
var l = ['Product ED', 'Product CX', 'Product XY', 'Product ED'];
var rules = ['CX', 'XY', 'ED'];
l.sort(function(a, b) {
return rules.indexOf(a.replace(/^Product /, '')) > rules.indexOf(b.replace(/^Product /, ''));
})
['Product CX', 'Product XY', 'Product ED', 'Product ED']