首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较JavaScript中的两个哈希映射?

如何比较JavaScript中的两个哈希映射?
EN

Stack Overflow用户
提问于 2017-06-27 09:58:48
回答 2查看 436关注 0票数 1

我想比较两个包含hashmap的对象,目的是恢复相互冲突的属性(在两个对象中具有不同值的相同键)。例如:

代码语言:javascript
复制
Object1 : {
1234567891001 : 1
1234567891002 : 2
1234567891003 : 8
1234567891004 : 9
}

Object2 : {
1234567891001 : 1
1234567891002 : 2
1234567891003 : 3
1234567891004 : 4
}
  • 输出:列表+消息(结果列表从对象1中提取) 1234567891003 :8 1234567891004 :9

EAN 1234567891003应该由3而不是8组成,EAN 1234567891004应该由4而不是9组成。

EN

回答 2

Stack Overflow用户

发布于 2017-06-27 10:06:48

不确定这是否正是你所要求的,但它至少应该对你有帮助:

代码语言:javascript
复制
var result = {};
var conflicts = {};
Object.keys(Object1).forEach((key) => {
  if (Object2.hasOwnProperty(key)) {
    conflicts[key] = Object1[key];
    result[key] = Object2[key];
  } else {
    result[key] = Object1[key];
  }
});

console.log("Conflicts", conflicts);
console.log("Result", result);

编辑:好的,在重新阅读你的问题之后,我意识到你实际上想要两个列表:一个结果列表和一个冲突列表。我更新了我的答案。

票数 0
EN

Stack Overflow用户

发布于 2017-06-27 10:54:21

您可以使用对object1键的迭代方法,并创建一个具有差异值的特性的新对象。

代码语言:javascript
复制
var object1 = { 1234567891001: 1, 1234567891002: 2, 1234567891003: 8, 1234567891004: 9 },
    object2 = { 1234567891001: 1, 1234567891002: 2, 1234567891003: 3, 1234567891004: 4 },
    difference = {};

Object.keys(object1).forEach(function (k) {
    if (object1[k] !== object2[k]) {
        difference[k] = object1[k];
    }
});

console.log(difference);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44777381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档