如何将整数数组转换为人力车的x / y坐标

时间:2013-11-15 05:01:17

标签: javascript ruby arrays hash rickshaw

我正在尝试将令人敬畏的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...]

所以我的问题是,如何删除上面的引号以获得一个哈希数组,或者,如果我在错误的轨道上:我如何格式化数组以使它可以呈现给人力车?我更喜欢在这里使用Ruby,但JavaScript中的任何内容都会很棒。

感谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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} .....