-1

我从一个 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 以使它们均匀。多年来一直在研究这个。有人有想法么?

4

2 回答 2

1

你可以使用这样的东西:

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

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

于 2013-01-16T11:03:40.713 回答
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]]
于 2013-01-16T11:02:18.130 回答