내 웹 응용 프로그램에서 Highcharts를 사용하려고하지만 highcharts에 필요한 출력과 일치하도록 배열을 가져 오는 데 문제가 있습니다. 본질적으로 hightchart에는 JS :배열 및 해시 변환에 대한 도움말
과 같은 출력이 필요합니다.series: [{
name: 'person',
data: [1562, 873, 1457]
}, {
name: 'car',
data: [7323, 324, 1233]
}, {
name: 'SUV',
data: [832, 6232, 4432]
}]
이 경우 데이터 배열의 각 항목이 새로운 날인 경우 내 데이터가 약간 다르게 구성되어 있으며 이에 맞게 데이터를 변환하려고하면 골칫거리가됩니다. 기본적으로 내 출력과 같이이다 :
[
{:date=>"Sun, 10 Apr 2011", :object_types=>[
{:count=>4279, :class_name=>"person"},
{:count=>8785, :class_name=>"car"},
{:count=>2153, :class_name=>"SUV"}
]},
{:date=>"Sat, 09 Apr 2011", :object_types=>[
{:count=>12206, :class_name=>"person"},
{:count=>29095, :class_name=>"car"},
{:count=>7565, :class_name=>"SUV"}
]},
{:date=>"Fri, 08 Apr 2011", :object_types=>[
{:count=>4159, :class_name=>"person"},
{:count=>8043, :class_name=>"car"},
{:count=>1982, :class_name=>"SUV"}
]}
]
그래서 내가 주로
:class_name
(내 경우) 처음에 의해 그룹화 된 항목이 필요 보인다 다음 내 그
data
의 각 항목과 같은 일에 의해
:count
.
우아하게 이것을 수행하는 "루비 방법"을 찾는 데 어려움을 겪고 있습니다. 어레이와 해시를 조작하는 데 아주 훌륭합니다. 아마 이것을 볼 수있을 지 모르겠지만, 이것을 달성하는 데 도움이 될 것입니다. 옳은 길은 인정 받고 있습니다.
둘째, 원래는 내 질문에 group()
를 사용하여이 작업을 수행하려하지만 나던 많이 생각을 돕는 것 같다? 내가 해결해야 할 또 다른 일은 거기에 레코드가 없다면 날짜를 "0"으로 채우는 것입니다.하지만 그 다음에 생각할 것입니다. 이 같은
아마도'Hash.new {| h, k | hash.new (Array.new)가 아닌 [h [k] = []}'입니다. –
같은 동작이 아닙니까? – pedrofs
Nope. 'Hash.new ([])','Hash.new {[]}'와'Hash.new {| h, k | h [k] = []}'은 다릅니다. http://stackoverflow.com/questions/2692141/hash-default-value-not-being-used & http://stackoverflow.com/questions/2552579/ruby-method-array-not-updating-the-array를 참조하십시오. 해쉬 인 –