【发布时间】:2015-11-20 23:38:24
【问题描述】:
我有@acct_list:
{"account_id"=>1, "customer_id"=>1, "balance"=>0.0, 0=>1, 1=>1, 2=>0.0}
{"account_id"=>2, "customer_id"=>1, "balance"=>1000.0, 0=>2, 1=>nil, 2=>1000.0}
{"account_id"=>3, "customer_id"=>2, "balance"=>9.0, 0=>3, 1=>2, 2=>9.0}
{"account_id"=>4, "customer_id"=>2, "balance"=>0.0, 0=>4, 1=>2, 2=>0.0}
我正在尝试显示银行计划的客户 # 和帐户 #。我希望我的显示器显示如下内容:
Customer #1 Account #1 ----- Balance: $0.0
Account #2 ----- Balance: $1000.0
Customer #2 Account #3 ----- Balance: $9.0
Account #4 ----- Balance: $0.0
每个客户应该只显示一次,以及该客户拥有的帐户总数。
这是我的代码的样子:
def self.account_info2(acct_list)
account_id_array = []
acct_list.each do |a|
print "\n"
print 'Customer #' + a["customer_id"].to_s + ' Account #' + a["account_id"].to_s + " ----- " + "Balance: $" +
a["balance"].to_s
print "\n"
account_id_array.push(a["account_id"])
end
account_id_array
end
@acct_list = bank.account_list(@man_name, @man_pin)
return account_info2(@acct_list)
它会显示不必要的 Customer # 重复:
Customer #1 Account #1 ----- Balance: $0.0
Customer #1 Account #2 ----- Balance: $1000.0
Customer #2 Account #3 ----- Balance: $9.0
Customer #2 Account #4 ----- Balance: $0.0
【问题讨论】:
-
您想要的输出具有误导性!它将帐户 2 显示为属于客户 1,而实际上它并不属于他。
-
出了点问题。您的输出或示例数据。
-
对不起。是一个错字。它确实属于。简单的错误。修正错误。
-
我建议您编辑您的问题以进行一些更改。 1.将最后四行表示为(命名的)数组,如
arr = [{"account_id"=>1,...,2=>0.0},...'。 2. 将arr移动到开头并说给你这个数组。 3. 说明数组的元素按客户分组,如果"customer_id"的值为nil,则它与前一个元素在同一个客户组中。 4.陈述你的问题:你如何打印arr的元素,使它看起来像这样:。 -
您编辑了问题以完全改变含义。更糟糕的是,你这样做没有告诉读者你有。这样的变化会使答案和 cmets 变得毫无意义。我的回答就是证明。您最初的问题中最重要的方面是
"customer_id" could benil 的值。你在完全沉默中改变了这一点。我很少对问题投反对票,但在这里我例外。