我正在尝试从另一个数组创建一个数组+一个计数变量。
Array1 = [100,101,102]
count = 0
我希望结果为NewArray = [ [0,100],[1,101],[2,102] ]
我尝试了很多不同的循环和结构,却无法得到它。
示例:
<% @daArray.each do |da| %>
<%= "["+da.to_s+","+count.to_s+"]" %>
<% if count != @daArray.count-1 %>
<%= ","%>
<% end %>
<% count += 1 %>
<% end %>
答案 0 :(得分:1)
这样做你想要的:
ary = [100,101,102]
upper_range = ary.size - 1 # Your "count"
new_ary = (0..upper_range).zip(ary) # "zip" together the two
new_ary # => [[0, 100], [1, 101], [2, 102]]
实现相同结果的另一种方法:
count = -1
ary.map do |el|
count += 1
[count, el]
end
答案 1 :(得分:0)
要以您想要的形式获取数组,您可以使用each_with_index
,这将占用一个块。参数是数组和索引的值。
your_array.each_with_index.map { |value, i| [i, value] }
要以JavaScript数组表示法输出数组对象,您实际上只需将其转换为JSON:
your_array.to_json
将your_array
看作[100, 101, 102]
并将其直接转换为字符串以便作为JavaScript插入,只需将两者结合起来:
<%= your_array.each_with_index.map { |value, i| [i, value] }.to_json %>
答案 2 :(得分:0)
arr = []
[100,101,102].each_with_index{|val, index| arr << [index, val]}