JavaScript:比较两个JSON对象的结构,而忽略它们的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript:比较两个JSON对象的结构,而忽略它们的值相关的知识,希望对你有一定的参考价值。
我使用基于Node.js的模拟服务器来指定和模拟来自后端的API响应。进行某种形式的后端和前端是否符合规范的检查将大有帮助。为此,我需要一种比较两个JSON对象的结构的方法。
例如,应将这两个对象视为相等:
var object1 = {
'name': 'foo',
'id': 123,
'items' : ['bar', 'baz']
}
var object2 = {
'name': 'bar',
'items' : [],
'id': 234
}
任何想法我将如何处理?
答案
这是一个优雅的解决方案。您可以像这样简单:
var equal = true;
for (i in object1)
if (!object2.hasOwnProperty(i))
equal = false;
如果两个元素具有相同的属性,则var equal
必须保留为true
。
和作为功能:
function compareObjects(object1, object2){
var equal = true;
for (i in object1)
if (!object2.hasOwnProperty(i))
equal = false;
return equal;
}
另一答案
您可以使用hasOwnProperty函数来执行此操作,并检查是否在object2中存在object1的每个属性名称:
function hasSameProperties(obj1, obj2) {
return Object.keys(obj1).every( function(property) {
return obj2.hasOwnProperty(property);
});
}
以上是关于JavaScript:比较两个JSON对象的结构,而忽略它们的值的主要内容,如果未能解决你的问题,请参考以下文章