我正在进行Web服务调用并按如下方式循环结果:
$.each(v.outcomes, function (kk, vv) {
}
我想使用v.outcomes
使用数组中的顺序作为模板对vv.name
进行排序,例如:
var names=new Array("Saab","Volvo","BMW");
如果在数组中找不到vv.name
,它将被放置在有序列表下面。
这可能吗?
答案 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;
});