比较散列阵列并打印预期的&实际结果 [英] compare array of hashes and print expected & actual results
问题描述
我有2个哈希数组:
actual = [{column_name=>NONINTERESTINCOME,column_data_type =>NUMBER},
{column_name=>NONINTERESTEXPENSE,column_data_type=>VARCHAR},
{column_name=>TRANSACTIONDATE, column_data_type=>TIMESTAMP},
{column_name=>UPDATEDATE,column_data_type=>TIMESTAMP}]
expected = [{column_name=> ;NONINTERESTINCOME,column_data_type=>NUMBER},
{column_name=>NONINTERESTEXPENSE,column_data_type=>NUMBER},
{ =>TRANSACTIONDATE,column_data_type=>NUMBER},
{column_name=>UPDATEDATE,column_data_type=>TIMESTAMP}] code>
我需要比较这两个哈希值并找出 来比较我们可以直接使用: 这会打印输出为: 我的预期输出是结果中我想打印实际数据类型和期望数据类型,表示实际和预期的哈希数组中缺少`column_name'的数据类型,如下所示: I have 2 array of hashes: I need to compare these 2 hashes and find out the ones for which the to compare we can directly use: This will print the output as: My expected output is that in the result i want to print the actual and expected datatype, means the datatypes for the missing `column_name' from both the actual and expected array of hashes, something like:
这篇关于比较散列阵列并打印预期的&实际结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! column_data_type $ c $
diff = actual - 预计
{column_name=>NONINTERESTEXPENSE,column_data_type=>VARCHAR}
{column_name=>TRANSACTIONDATE,column_data_type=>TIMESTAMP}
{column_name=>NONINTERESTEXPENSE,expected_column_data_type=>NUMBER,actual_column_data_type=> VARCHAR}
{column_name=>TRANSACTIONDATE,expected_column_data_type=>NUMBER,actual_column_data_type=> TIMESTAMP}
(预期 - 实际)。
concat(实际 - 预期)。
group_by {| column |列['column_name']}。
map do | name,(预计,实际)|
{
'column_name'=>名称,
'expected_column_data_type'=>预期['column_data_type'],
'actual_column_data_type'=> actual ['column_data_type'],
}
end
actual = [{"column_name"=>"NONINTERESTINCOME", "column_data_type"=>"NUMBER"},
{"column_name"=>"NONINTERESTEXPENSE", "column_data_type"=>"VARCHAR"},
{"column_name"=>"TRANSACTIONDATE", "column_data_type"=>"TIMESTAMP"},
{"column_name"=>"UPDATEDATE", "column_data_type"=>"TIMESTAMP"}]
expected = [{"column_name"=>"NONINTERESTINCOME", "column_data_type"=>"NUMBER"},
{"column_name"=>"NONINTERESTEXPENSE", "column_data_type"=>"NUMBER"},
{"column_name"=>"TRANSACTIONDATE", "column_data_type"=>"NUMBER"},
{"column_name"=>"UPDATEDATE", "column_data_type"=>"TIMESTAMP"}]
column_data_type
differs.diff = actual - expected
{"column_name"=>"NONINTERESTEXPENSE", "column_data_type"=>"VARCHAR"}
{"column_name"=>"TRANSACTIONDATE", "column_data_type"=>"TIMESTAMP"}
{"column_name"=>"NONINTERESTEXPENSE", "expected_column_data_type"=>"NUMBER", "actual_column_data_type" => "VARCHAR"}
{"column_name"=>"TRANSACTIONDATE", "expected_column_data_type"=>"NUMBER","actual_column_data_type" => "TIMESTAMP" }
(expected - actual).
concat(actual - expected).
group_by { |column| column['column_name'] }.
map do |name, (expected, actual)|
{
'column_name' => name,
'expected_column_data_type' => expected['column_data_type'],
'actual_column_data_type' => actual['column_data_type'],
}
end