Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
ruby哈希中的填充/默认值_Ruby_Arrays - Fatal编程技术网

ruby哈希中的填充/默认值

ruby哈希中的填充/默认值,ruby,arrays,Ruby,Arrays,我的这个结果来自一个在我的Javascript中运行良好的哈希。除了一件事,这只发生在一些人身上。结果如下: [[500,400,300], [650,300], [500,400,300]] 您可以在第二个成员中看到,数组只有2个成员长。我如何将其填充出来,以便所有缺少的成员都为0。那就来了 [[500,400,300], [650,300,0], [500,400,300]] 我尝试过使用默认方法,但不起作用 我正在使用以下代码获取此哈希: data = Hash.new { |hash

我的这个结果来自一个在我的Javascript中运行良好的哈希。除了一件事,这只发生在一些人身上。结果如下:

[[500,400,300], [650,300], [500,400,300]]
您可以在第二个成员中看到,数组只有2个成员长。我如何将其填充出来,以便所有缺少的成员都为0。那就来了

[[500,400,300], [650,300,0], [500,400,300]]
我尝试过使用默认方法,但不起作用

我正在使用以下代码获取此哈希:

data = Hash.new { |hash, key| hash[key] = [] }

在一个坚果壳中,我希望所有数组都是偶数,并放置一个0以使它们均匀。多年来一直在研究这个问题。有人有什么想法吗?

下面的代码可以工作

a = [[500,400,300], [650,300], [500,400,300]].each {|e| e << 0 if e.count < 3}
#=> [[500, 400, 300], [650, 300, 0], [500, 400, 300]]
a=[[500400300]、[650300]、[500400300]。[500400300]。[500400300]、[65030000]、[500400300]]

您可以使用以下内容:

def addpadding(data, length)
  data.each do |subarray|
    subarray.fill(0, subarray.length...length)
  end
end

您需要为该方法提供二维数组和所需的
长度
(例如3),它将子数组填充到给定长度。

其中一个元素包含单个成员的可能性有多大?
[[500400300],[650],[500400300]]
如果其中一个数组只有一个成员该怎么办?只有当有一个成员时,您的代码才能工作missing@luriG:看看我在问题下面的评论,我问了同样的问题。你所需要的是while循环那里,而不是
if
,使它适用于所有的可能性,那么为什么不让它适用于所有的情况呢?