Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ruby中动态命名数组/哈希_Javascript_Ruby_Variables_Dynamic_Naming - Fatal编程技术网

Javascript Ruby中动态命名数组/哈希

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 = {} 然后使用存储或[]=

所以我有一个for循环,它根据传入的内容创建散列或数组

我需要根据传入的内容创建这些数组和带有名称的散列

这和

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}", []] }]