我有一个像这样但更复杂的对象:
var obj =
{
a: foo,
b: bar,
sub:{
a: foz
}
}
然后我有一个基于键和值的条件,例如:
{
a: ^f,
sub:{
a: z$
}
}
是否有一种方法可以检查所有对象属性的条件是否为真。我也很喜欢 chome-only-features 或类似下划线的东西。我还可以重新构造我的条件语句的结构。
最佳答案
也许你可以使用 deepEqual() 或根据你的需要修改它
var deepTest = function (x, y) {
if ((typeof x == "object" && x != null) && (typeof y == "object" && y != null)) {
if (Object.keys(x).length != Object.keys(y).length)
return false;
for (var prop in x) {
if (y.hasOwnProperty(prop))
{
if (! deepEqual(x[prop], y[prop]))
return false;
}
else
return false;
}
return true;
}
else if(x && (typeof y != "undefined")) return true; else return false;
}
document.write(deepEqual({a:{b:true}},{a:{c:1}}),'<br>');
document.write(deepEqual({a:{b:true}},{a:{b:1}}),'<br>');
document.write(deepEqual({a:{b:false}},{a:{c:1}}),'<br>');
document.write(deepEqual({a:{b:false}},{a:{b:1}}),'<br>');
document.write(deepEqual(true,true),'<br>');
document.write(deepEqual(true,false),'<br>');
document.write(deepEqual(false,false),'<br>');
document.write(deepEqual(false,false),'<br>');
document.write(deepEqual([true],[1]),'<br>');
document.write(deepEqual([true],[]),'<br>');
document.write(deepEqual([true],[]),'<br>');
document.write(deepEqual([true,true],[]),'<br>');
document.write(deepEqual([true,true],[1,2]),'<br>');
关于javascript - 是否有测试对象是否与其他对象匹配的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27659434/