2016-05-10 3 views
-3

У меня есть список, который генерируется из базы данных что-то вроде этогоJQuery сортировать список на основе исходного слова, прежде чем дефис

bajaj-4S-champion 
bajaj-avenger 
audi-a3-diesel 
audi-a3-petrol 

и так далее. Это всего лишь пример, инициалы могут быть любыми, как bajaj, это может быть Chevrolet. Я хочу динамически сортировать список таким образом, чтобы все, начиная с того же самого начального, должно быть в отдельном div. В этом случае bajaj-4S-чемпион и bajaj-avenger следует разделить, а Audi следует разделить. Как сравнить инициалы перед дефисом и разделить их?

+0

В общем, это лучшая практика, чтобы избежать использования JQuery для такого рода манипуляций с данными. Это можно сделать в простом JavaScript, и когда вы это делаете, вы устраняете зависимость. Есть некоторые действительно (ДЕЙСТВИТЕЛЬНО) полезные функции массива, которые вы можете захотеть посмотреть, такие как фильтр, карта, сокращение, сортировка, объединение и forEach (в дополнение к String.split). –

ответ

2

Сначала вы можете отсортировать данные и затем сгруппировать их в объект для дальнейшей обработки.

var array = ['bajaj-4S-champion', 'bajaj-avenger', 'audi-a3-diesel', 'audi-a3-petrol'], 
 
    object = {}; 
 

 
array.sort(); 
 
array.forEach(function (a) { 
 
    var key = a.split('-')[0]; 
 
    object[key] = object[key] || []; 
 
    object[key].push(a); 
 
}); 
 

 
document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');

+1

Спасибо, я попробую –

Смежные вопросы