Javascript Ruby中动态命名数组/哈希
所以我有一个for循环,它根据传入的内容创建散列或数组 我需要根据传入的内容创建这些数组和带有名称的散列 这和Javascript Ruby中动态命名数组/哈希,javascript,ruby,variables,dynamic,naming,Javascript,Ruby,Variables,Dynamic,Naming,所以我有一个for循环,它根据传入的内容创建散列或数组 我需要根据传入的内容创建这些数组和带有名称的散列 这和 window['MyNewArray-' + i] = []; 在javascript中。Ruby有什么等价物吗?您可以这样做: window = {} 5.times do |i| window["my_new_array_#{i}"]=[] end 同样的代码在Ruby中也可以工作,并且做同样的事情。您可以使用以下方法创建Ruby哈希: h = {} 然后使用存储或[]=
window['MyNewArray-' + i] = [];
在javascript中。Ruby有什么等价物吗?您可以这样做:
window = {}
5.times do |i|
window["my_new_array_#{i}"]=[]
end
同样的代码在Ruby中也可以工作,并且做同样的事情。您可以使用以下方法创建Ruby哈希:
h = {}
然后使用存储
或[]=
操作符添加一个键/值对
像这样:
h["foo_#{i}"] = []
如果必须创建具有动态名称的变量,则代码很可能已损坏。考虑将这些元素放入数组/DICT容器中。这是因为我有嵌套数组,并希望将它们提升到一个级别。因此,与其说容器[0][0],不如说我想访问一组顶级数组。事实上,这是一种需要。这不是我经常做的事情。只有数字应该转换成字符串
window['MyNewArray-'+I.to_s]=[]代码>@fl00r:啊,是的,没错。惯用的方法是使用字符串插值:window[“MyNewArray-{i}]=[]
。我很确定他想要的是实际变量,而不是名为window
的对象(在JavaScript中是全局范围)。
window = Hash[1.upto(5).map { |n| ["name-#{i}", []] }]