2015-01-14 1 views
0

자바 스크립트 객체를 정렬하지 않아도되지만 d3 차트가 필요하다는 것을 알고 있습니다. 나는 그 범위 내가 가장 낮은 값 키가 먼저 와서되도록 정렬 된 개체를 반환 할 필요가_.sortBy d3 차트의 객체 키 값

var counts = {680-700: 30, 620-640: 41, 640-660: 24, 660-680: 10} 

에 얼마나 많은 개수의 FICO 점수 범위의 키와 값을 가진 객체가 있습니다.

var desired_obj = { 620-640: 41, 640-660: 24, 660-680: 10, 680-700: 30 } 

나는 _.sortBy을 사용하려고하지만 그것은 단지 자바 스크립트는 명시 적으로이 키에는 순서이없는 개체, 값 주석에서 설명하고있는 바와 같이

_.sortBy(counts, function(val, key) { return val }) 
+1

포스트 차트 만드는 코드를 : 당신이 정렬 된 사전이 필요합니까 어디? JavaScript 객체에는 순서가 없으므로 정렬하는 것은 의미가 없습니다. – nwk

+3

'counts'가 배열이 될 수없는 이유가 있습니까? 예 : {범위 : '680-700', 개수 : 30}, {범위 : '620-640', 개수 : 41}, '범위 :'640-660 ', 개수 : 24}, 범위 : 680 ', count : 10}]' –

+0

@ shawnb 아니, 괜찮을거야. – user2954587

답변

0

를 반환합니다. (출처 : https://stackoverflow.com/a/5525820/1007263)

주문해야 할 경우 개체를 배열로 변환해야합니다.

a = {a:1, b:3, c:2} 
_.map(a, function(value, key) { return {key: key, value: value} }) 
// [{"key":"a","value":1},{"key":"b","value":3},{"key":"c","value":2}] 

을 그리고 당신은 매핑 후 정렬 체인을 사용할 수 있습니다 : 당신은 밑줄로 쉽게 그렇게 할 수

_.chain(a).map(function(value, key) { return {key: key, value: value} }).sortBy('value').value() 
//"[{"key":"a","value":1},{"key":"c","value":2},{"key":"b","value":3}]"