将hashMap数组值与Javascript进行比较

将hashMap数组值与Javascript进行比较,javascript,Javascript,如何使用javascript比较两个值中包含数组的HashMap 示例:假设这是我的2个哈希映射 第一名=> 1234 : [1.03 , 2.17 , 3] 1235 : [1 , 4 , 5] 1236 : [2 , 3 , 3] 1237 : [0.33 , 1.51 , 5] 第二名=> 1234 : [1.03 , 2.17 , 3] 1235 : [1.17 , 2 , 3.9] 1236 : [2 , 3 , 3] 1237 : [2 , 1 , 5] 结果=> 1235 :

如何使用javascript比较两个值中包含数组的HashMap

示例:假设这是我的2个哈希映射

第一名=>

1234 : [1.03 , 2.17 , 3] 
1235 : [1 , 4 , 5]
1236 : [2 , 3 , 3]
1237 : [0.33 , 1.51 , 5]
第二名=>

1234 : [1.03 , 2.17 , 3]
1235 : [1.17 , 2 , 3.9]
1236 : [2 , 3 , 3]
1237 : [2 , 1 , 5]
结果=>

1235 : [1 , 4 , 5]
1237 : [0.33 , 1.51 , 5]

(目标是比较第一个和第二个,并显示第一个hashmap中哪些键和值不一致)。

我在开始时是这样做的,当时我的值是字符串而不是数组:

compareHashMap: function(iAdaptation, iActual){
                var difference = {};
                Object.keys(iActual).forEach(function(k){
                    if(iAdaptation[k] !== iActual[k]){
                        difference[k] = iActual[k];
                    }
                });
                return difference;
            },
注意:IAdaption和iActual是散列图,您可以使用,并且:

const one={1234:[1.03,2.17,3],1235:[1,4,5],1236:[2,3,3],1237:[0.33,1.51,5]};
常数二={1234:[1.03,2.17,3],1235:[1.17,2,3.9],1236:[2,3,3],1237:[2,1,5]};
常量结果=Object.keys(一个)
.filter(k=>1[k].toString()!==2[k].toString())
.map(k=>({[k]:一[k]}));
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
到目前为止您尝试了什么?使用循环和比较请始终在问题本身中添加相关代码。创建一个。您应该使用此信息编辑问题,而不是添加答案。但是,最简单的更改是在比较中使用
JSON.stringify()
。例如:
if(JSON.stringify(iadaption[k])!==JSON.stringify(iActual[k]){…}
@Phylogenesis结果值应该是一个数组而不是字符串,JSON.stringfy返回一个stringIt只比较stringized形式,它仍然将实际数组添加到
差异中
。它不起作用:TypeError:无法读取未定义的at对象的属性“toString”。key.filter.k at array.filter(本机)在代码示例中工作,如您所见。。请检查一下你的密码