Javascript 如果'obj'上的每个属性都相同,则返回true
如何在JavaScript中递归检查对象上的每个属性是否相同Javascript 如果'obj'上的每个属性都相同,则返回true,javascript,Javascript,如何在JavaScript中递归检查对象上的每个属性是否相同 { a:1, b 1, c:{ aa:1, }, }; 将是true 如果我们用aa:2替换aa:1,我们希望返回false这里有一种方法,只需使用IIFE递归迭代,将所有值放入一个数组中,然后比较它们 var obj={ 答:1,, b:1, c:{ aa:1 } }; 函数完全相同(o){ var值=[]; (功能rec(obj){ Object.keys(obj).forEach
{
a:1,
b 1,
c:{
aa:1,
},
};
将是true
如果我们用
aa:2
替换aa:1
,我们希望返回false
这里有一种方法,只需使用IIFE递归迭代,将所有值放入一个数组中,然后比较它们
var obj={
答:1,,
b:1,
c:{
aa:1
}
};
函数完全相同(o){
var值=[];
(功能rec(obj){
Object.keys(obj).forEach(函数(key){
如果(对象的类型[key]==“object”)返回rec(对象[key]);
值。推送(obj[键])
})
})(o) );
返回值.every(x=>值[0]==x);
}
console.log(isAllSame(obj))代码>*现在可以工作了
var obj = {
a: 1,
b: 1,
c:{
aa:1
}
};
function checkifEqual(var object, var recent)
{
for( var x = 0; x < object.length; x++)
{
if(x == 0 && recent == null)
{
recent = object[x];
continue;
}
if( typeof(object[x]) !== 'object' && object[x] == recent)
{
continue;
}
else if(typeof(object[x]) === 'object')
{
if( checkifEqual(object[x],recent))
{
continue;
}
else
{
return false;
}
}
else
{
return false;
}
}
return true;
}
console.log(checkifEqual(obj,null));
var obj={
答:1,,
b:1,
c:{
aa:1
}
};
函数checkifEqual(变量对象,变量最近)
{
对于(var x=0;x
在第一次调用时,您将传递checkifEqual(Object,null)您可以获取一个对象来检查值,因为通过使用引用,该值可以回溯到调用函数
要检查的值被包装在一个对象中,它允许在所有递归调用的函数中使用它,即使在第一个函数中,由于对象具有嵌套属性,因此没有实际值第一次可用
在第一次调用时,检查值
,如果为false,则使用对象初始化。如果找到了第一个实数值,那么它将用作对象的反向传播,并且可以在任何运行的check
调用中使用
使用
every()
方法测试数组中的所有元素是否通过所提供函数实现的测试
如果某个值与第一个找到的值不匹配,则提前退出。这是回调的退出条件和要返回的值
功能检查(对象、值){
值=值|{};
return Object.keys(Object.every)函数(k){
if(对象[k]&&typeof对象[k]='object'){
返回检查(对象[k],值);
}
如果(!(‘值’在值中)){
value.value=对象[k];
返回true;
}
返回对象[k]==value.value;
});
}
log(检查({a:1,b:1,c:{aa:1}));
log(检查({a:{x:1},b:1,c:{aa:1}));
log(检查({a:1,b:1,c:{aa:2}))代码>编写一个递归函数,循环遍历所有属性,检查它们是否与输入值相同。欢迎使用堆栈溢出!所以这不是免费的编码服务。你必须自己尝试解决这个问题。如果你不能让它工作,发布你尝试过的东西,我们会帮你修复。这不是真的,因为c
不是1
,而是一个对象。那么,您只想查找原语吗?const checkMatchingLeaves=(obj)=>{obj=Object.values;obj.forEach((value)=>{if(type of Object(value)=='Object')return true;};
};我试过这种方法,你能解释一下值|{}
和每种方法吗