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_Hash - Fatal编程技术网

查找Ruby中数组之间的差异,其中元素是散列

查找Ruby中数组之间的差异,其中元素是散列,ruby,arrays,hash,Ruby,Arrays,Hash,我有两个哈希数组,我想找出它们之间的区别。我的问题是数组元素是单项散列 到目前为止,使用array1-array2似乎工作正常,但我需要注意这里的问题吗?散列元素本身的读取方式类似于h={'ID'=>'76322'},其中,散列的数值不同,所以没有什么特别的 [编辑] 以下是我想要的: array1 = [] array2 = [] h = {'ID' => '76322'} array1.push(h) h = {'ID' => '7891'} array1.push(h) a

我有两个哈希数组,我想找出它们之间的区别。我的问题是数组元素是单项散列

到目前为止,使用
array1-array2
似乎工作正常,但我需要注意这里的问题吗?散列元素本身的读取方式类似于
h={'ID'=>'76322'}
,其中,散列的数值不同,所以没有什么特别的

[编辑]

以下是我想要的:

array1 = []
array2 = []

h = {'ID' => '76322'}
array1.push(h)

h = {'ID' => '7891'}
array1.push(h)
array2.push(h)

array1 = array1 - array2 # should result in array1 having a single hash of values {'ID', '76322'}

array1-array2
的工作原理是将
array2
的元素放入临时哈希,然后返回哈希中未出现的
array1
的所有元素。使用
=
比较哈希元素以确定它们是否匹配

使用
==
比较两个哈希值,如果哈希值的所有键和值都匹配,则给出
true
。所以

h1 = {'ID' => '7891'}
h2 = {'ID' => '7891'}
h1 == h2
计算结果为
true
,即使
h1
h2
是不同的散列,相应的元素也将被正确删除


我唯一能想到的是,如果哈希键和值中处处都有字符串。如果它们有时是整数或符号,比如
{:ID=>7891}
,那么你就不会得到你想要的结果,因为
:ID='ID'
'7891'==7891
都是
false

array1-array2
通过将
array2
的元素放入临时散列来工作,然后返回未出现在散列中的
array1
的所有元素。使用
=
比较哈希元素以确定它们是否匹配

使用
==
比较两个哈希值,如果哈希值的所有键和值都匹配,则给出
true
。所以

h1 = {'ID' => '7891'}
h2 = {'ID' => '7891'}
h1 == h2
计算结果为
true
,即使
h1
h2
是不同的散列,相应的元素也将被正确删除


我唯一能想到的是,如果哈希键和值中处处都有字符串。如果它们有时是整数或符号,比如
{:ID=>7891}
,那么你就不会得到你想要的结果,因为
:ID='ID'
'7891'==7891
都是
假的

请给出示例输入和预期输出..现在你想要什么?您告诉我如何在Ruby中查找数组之间的差异。我请求您共享这两个数组的内容。请将其放入您的问题中。根据您的示例,您将在
array1
中获得
[]
。好的,它们现在在问题中。请给出示例输入和预期输出。现在您想要什么?您告诉我如何在Ruby中查找数组之间的差异。我请求您共享这两个数组的内容。请将其放入您的问题中。根据您的示例,您将在
数组1
中获得
[]
。好的,它们现在在问题中。感谢您的解释。感谢您的解释。