自定义从JSON列表中排序

时间:2013-12-05 22:01:01

标签: javascript jquery

我正在进行Web服务调用并按如下方式循环结果:

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

}

我想使用v.outcomes使用数组中的顺序作为模板对vv.name进行排序,例如:

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

如果在数组中找不到vv.name,它将被放置在有序列表下面。

这可能吗?

1 个答案:

答案 0 :(得分: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