2013-12-05 2 views
0

Я делаю вызов веб-службы и перекручивание результаты следующим образом:Пользовательские Сортировать по списку из JSON

$.each(v.outcomes, function (kk, vv) { 

} 

Я хотел бы отсортировать v.outcomes используя vv.name используя порядок в массиве в качестве шаблона, напр:

var names=new Array("Saab","Volvo","BMW"); 

если vv.name не найден в массиве он должен быть помещен под упорядоченный список.

Возможно ли это?

ответ

0

Один простой способ будет Переберите массива источников, и поместить элементы в новый отсортированный один:

var names=new Array("Saab","Volvo","BMW"); 

var sorted = new Array(v.outcomes.length); 

// keep track of the end index to place "unknown" items 
var end = v.outcomes.length-1; 

v.outcomes.forEach(function(item) { 
    var position = names.indexOf(item.name); 

    // add item to the appropriate position, otherwise place at the end 
    if (position != -1) 
     sorted[position] = item; 
    else 
     sorted[end--] = item; 
}); 

Fiddle

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