1

我正在尝试将很棒的 JS 图形库 Rickshaw 集成到我的项目中。人力车可以在这里找到:http ://code.shutterstock.com/rickshaw/

我要绘制的数据在一个简单的数组中:

data = [51929, 65932, 49119, 50379, 103501, 92430, 93107, 105710, 115200, 109283]

我想将数组中每个元素的索引用作 x 坐标,将元素本身用作 y 坐标。我需要将其格式化为以下格式,以便 Richshaw 发挥它的魔力:

data = [ { x: 0, y: 40 }, { x: 1, y: 49 }, { x: 2, y: 17 }, { x: 3, y: 42 } ];

我尝试了各种方法,最接近的方法是生成一个带有哈希值的引号数组,如下所示:

clean_data = []
data.each_with_index do |value, index|
  clean_data << "{x: #{index}, y: #{value} }”
end 
clean_data.to_a

返回:

["{x: 0, y: 51929}", "{x: 1, y: 65932}", "{x: 2, y: 49119}" ... etc...]

所以我的问题是,我怎样才能删除上面的引号以获得一个哈希数组,或者,如果我走错了路:我怎样才能格式化数组以使其对 Rickshaw 可呈现?我更喜欢在这里使用 Ruby,但 JavaScript 中的任何东西也都很棒。

谢谢。

4

2 回答 2

0
p data.map.with_index{|val, idx|
  Hash[:x,idx,:y,val]
}
#=> [{:x=>0, :y=>51929}, {:x=>1, :y=>65932}, {:x=>2, :y=>49119} .....
于 2013-11-15T11:05:36.660 回答
0

你非常接近。尝试这个:

data = [51929, 65932, 49119, 50379, 103501, 92430, 93107, 105710, 115200, 109283]
clean_data = []
data.each_with_index do |value, index|
  clean_data << {:x => index, :y => value}
end 

clean_data.to_json
于 2013-11-15T05:05:55.343 回答