有没有一种方法可以检查两个对象是否具有相同的属性?

时间:2018-07-22 00:33:22

标签: javascript json node.js object

因此,如果我有一个其中包含n个对象的JSON文件,它们每个都具有n个属性,并且两个对象具有一个共同的属性,那么有一种方法可以在外部JavaScript文件中,检查JSON文件中的哪个两个对象具有相同的属性。更进一步,是否有办法查看这两者之间是否还有更多共同点?我进行了研究,但在这个确切的主题上却一无所获,只有一篇关于检查给定对象是否具有给定属性的文章。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以尝试object.keys()并根据通用属性过滤数组。使用前,请检查Object.keys()的浏览器兼容性。

var obj1 = {
name:'hello',
age:12,
fav: 'fav',
foo: 'foo'
}

var obj2 = {
name: 'hey',
say: 'say',
prop: 'prop',
top: 'top'
}

var common = Object.keys(obj1).filter(obj1item =>  Object.keys(obj2).indexOf(obj1item) !== -1 );

console.log(common);

Object.keys()返回一个属性数组。我们正在比较两个数组的共同属性。

Object.keys():https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

Array.filter():https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter