2013-08-23 4 views
1

자바 스크립트 객체를 앞뒤로 반복 할 수 있습니까?역순으로 객체 반복 (자바 스크립트)

개체는 다음과 같습니다.

36 | 200 
35 | 120 
34 | 100 
33 | 140 

나는 그것을 다음과 같이 표시 할 {"33":140, "34":100, "35":120, "36":200}

는 ... 내가 먼저 다음 표시 정렬을 시도하지만, 두 번째 숫자가 아닌 키에 의해 정렬됩니다. 어떻게 앞뒤로 반복하거나 키에 따라 역순으로 정렬합니까?

나는 이것이 아주 간단 실현하지만, 필자는 꽤 좌절 점점 ....

+4

개체 속성을 반복 할 때 순서에 대한 보장은 없습니다. 그리고 객체를 정렬 할 수 없습니다. 나는 당신이 객체의 배열을 사용해야하고 그것을 정렬해야한다고 생각합니다. – bfavaretto

+0

@bfavaretto 올바른 개체는 주문하지 않습니다. 물론 키를 사용하여 정렬하고 사용할 수 있습니다 (내 대답 참조). –

+0

@ IngoBürk 나는 당신의 대답을 upvoted. 그것은 실제로 최선의 방법입니다. – bfavaretto

답변

4

상당히 현대적인 버전은 다음과 같을 것이다 :

Object.keys(obj).sort(function (a, b) { 
    return Number(b) - Number(a); 
}).forEach(function (current) { 
    console.log(current + ' | ' + obj[current]); 
}); 

유사하지만 조금 더와 코드는 오래된 브라우저에서도 사용할 수 있습니다. 또는 심을 사용하십시오.

+1

이것은 OP가 실제로 필요로하는 것 (Console.log (obj [current]))에 실제로 가깝습니다. – bfavaretto

+2

그는 둘 모두를 기록하려고했습니다. 나는 그저 모든 재미를 빼앗지 않을 것이라고 생각했습니다. 실제 문제를 해결하고 출력을 처리 할 수 ​​있습니다. –

+0

고마워요 !! ... 매우 효율적이고 컴팩트합니다 ..... 솔루션보다 훨씬 낫습니다. 요리하기에 바빴습니다 ... 대체 배열에 의존하는 두 개의 루프, 성가신 기능으로 – KyleK