Javascript:排序数组后,重新排序进行比较

时间:2014-09-01 10:53:16

标签: javascript arrays sorting

我有两个像这样的数组;

var a = [5,3,1,2,4]
var val = [{id: 'no5'}, {id: 'no3'}, {id: 'no1'}, {id: 'no2'}, {id: 'no4'}]

他们互相匹配索引。 a[i] == val[i]

但是有些情况下我需要对a进行排序;

a.sort(function(a,b){ return a-b }) // a = [1,2,3,4,5]

我的问题是,如何重新索引a以使其与val的索引匹配?

2 个答案:

答案 0 :(得分:0)

val.sort(function(a,b){
    return a.id.slice(2) - b.id.slice(2);
});

编辑:我误解了这个问题,我认为OP希望以与val相同的方式对a进行排序。

答案 1 :(得分:0)

我仍然不确定我理解,但我会采取刺:

for (var i = 0; i < a.length; i++) {
    a[i] = parseInt(val[i].id.substr(2), 10);
}