2014-09-01 2 views
0

두 개의 배열이 있습니다.Javascript : 배열을 정렬 한 후 비교를 위해 다시 정렬

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

왜 당신이 그것을 정렬하기 전에 A''의 사본을하지 않기 때문에 원래 버전을 얻을 수 있습니다 뒤로? – Barmar

+0

문제는 정렬 후 값이 변경된다는 것입니다. 다시 정렬해야합니다. – rolodex

+0

그게 핵심입니다. 복사본을 만들어서 정렬하십시오. 원래 배열은 변경되지 않습니다. – Barmar

답변

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

편집 : 나는 영업 이익이 a과 같은 방법으로 val을 정렬 원한다고 생각, 질문을 오해.

0

나는 아직도 내가 이해가 확실 해요,하지만 난 자상 할게요 :

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