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

Javascript 如何将整数数组转换为人力车的x/y坐标,javascript,ruby,arrays,hash,rickshaw,Javascript,Ruby,Arrays,Hash,Rickshaw,我正在尝试将令人敬畏的JS绘图库人力车集成到我的项目中。 人力车可以在这里找到: 我要绘制的数据位于一个简单数组中: data = [51929, 65932, 49119, 50379, 103501, 92430, 93107, 105710, 115200, 109283] 我想使用数组中每个元素的索引作为x坐标,元素本身作为y坐标。我需要将其格式化为以下格式,以便Richshaw可以发挥其神奇作用: data = [ { x: 0, y: 40 }, { x: 1, y: 49 },

我正在尝试将令人敬畏的JS绘图库人力车集成到我的项目中。 人力车可以在这里找到:

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

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
因此,我的问题是,我如何删除上面的引号以获得一个散列数组,或者,如果我走错了方向:我如何格式化数组以使其对Rickshaw可见?我更愿意在这里使用Ruby,但是JavaScript中的任何东西都会很好


谢谢。

你很接近。试试这个:

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
data=[51929、65932、49119、50379、103501、92430、93107、105710、115200、109283]
清除数据=[]
data.each_与_索引do |值,索引|
clean_数据索引:y=>value}
终止
清除数据到json

到目前为止,没有一个答案是有效的,人力车似乎不能很好地与哈希火箭配合使用。我在sublime中做了大量的查找和替换,以摆脱火箭,并将冒号放在变量的右侧,这很有效,因此我知道这不是Rickshaw的错。Rickshaw似乎不喜欢生成的json字符串。我想知道我是否需要做一些正则表达式的魔术来获得这种特定的格式。似乎总有办法…我要把这个标记为答案,因为我认为它非常接近,实际上可能与我在得到一些帮助后最终做的事情是一样的。最后,在处理数组并将其转换为JSON字符串后,我使用嵌入式ruby和raw将其插入Rickshaw,以处理转义字符:。这就成功了。
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
p data.map.with_index{|val, idx|
  Hash[:x,idx,:y,val]
}
#=> [{:x=>0, :y=>51929}, {:x=>1, :y=>65932}, {:x=>2, :y=>49119} .....