如何在数组对象javascript中基于条件检查返回布尔值
我有对象数组obj1,obj2 如果对象的名称不能包含如何在数组对象javascript中基于条件检查返回布尔值,javascript,arrays,loops,object,Javascript,Arrays,Loops,Object,我有对象数组obj1,obj2 如果对象的名称不能包含All键名,则返回true 如果对象的名称只能有一个All键名,而其他对象返回false 如果对象名只能有一个All键名,而没有其他对象,则返回true 如果对象的名称包含过多的键名All返回false 基于以上条件如何在javascript中做 function checkObj(ob){ var result = ob.filter(e=>e.name=="All"); if(result.length
All
键名,则返回true
如果对象的名称只能有一个All
键名,而其他对象返回false
如果对象名只能有一个All
键名,而没有其他对象,则返回true
如果对象的名称包含过多的键名All
返回false
基于以上条件如何在javascript中做
function checkObj(ob){
var result = ob.filter(e=>e.name=="All");
if(result.length !== 1){
return false;
}
else{
return true;
}
}
var obj1=[
{id:1, name: "All", value:"all"},
{id:2, name: "Sun", value:"sun"},
{id:3, name: "Mon", value:"mon"},
]
var obj2=[
{id:4, name: "Thur", value:"thur"},
{id:8, name: "Mon", value:"mon"},
]
var obj3=[
{id:1, name: "Thur", value:"thur"},
{id:5, name: "All", value:"all"},
{id:2, name: "Mon", value:"mon"},
{id:6, name: "All", value:"all"}
]
var obj4=[
{id:1, name: "All", value:"all"}
]
var r1= this.checkObj(obj1);
var r2=this.checkObj(obj2);
var r3=this.checkObj(obj3);
var r4=this.checkObj(obj4);
Expected Output:
false
true
false
true
您可以检查数组中是否有
name=“All”
的对象
然后,返回true
如果
- 数组具有
对象,数组的长度为name=“All”
1
- 或者数组没有
name=“All”
功能检查对象(arr){
const hasAll=arr.some(o=>o.name==“All”)
返回(arr.length==1&&hasAll)| |!hasAll
}
下面是一个片段:
功能检查对象(arr){
const hasAll=arr.some(o=>o.name==“All”)
返回(arr.length==1&&hasAll)| |!hasAll
}
const obj1=[{id:1,name:“All”,value:“All”},{id:2,name:“Sun”,value:“Sun”},{id:3,name:“Mon”,value:“Mon”},],
obj2=[{id:4,名称:“Thur”,值:“Thur”},{id:8,名称:“Mon”,值:“Mon”},],
obj3=[{id:1,name:“Thur”,value:“Thur”},{id:5,name:“All”,value:“All”},{id:2,name:“Mon”,value:“Mon”},{id:6,name:“All”,value:“All”}],
obj4=[{id:1,名称:“All”,值:“All”}];
控制台日志(检查OBJ(obj1))
控制台日志(检查OBJ(obj2))
控制台日志(checkObj(obj3))
log(checkObj(obj4))
您可以使用name=“All”
检查数组是否有任何对象
然后,返回true
如果
- 数组具有
对象,数组的长度为name=“All”
1
- 或者数组没有
name=“All”
功能检查对象(arr){
const hasAll=arr.some(o=>o.name==“All”)
返回(arr.length==1&&hasAll)| |!hasAll
}
下面是一个片段:
功能检查对象(arr){
const hasAll=arr.some(o=>o.name==“All”)
返回(arr.length==1&&hasAll)| |!hasAll
}
const obj1=[{id:1,name:“All”,value:“All”},{id:2,name:“Sun”,value:“Sun”},{id:3,name:“Mon”,value:“Mon”},],
obj2=[{id:4,名称:“Thur”,值:“Thur”},{id:8,名称:“Mon”,值:“Mon”},],
obj3=[{id:1,name:“Thur”,value:“Thur”},{id:5,name:“All”,value:“All”},{id:2,name:“Mon”,value:“Mon”},{id:6,name:“All”,value:“All”}],
obj4=[{id:1,名称:“All”,值:“All”}];
控制台日志(检查OBJ(obj1))
控制台日志(检查OBJ(obj2))
控制台日志(checkObj(obj3))
log(checkObj(obj4))
您可以在计数超过一次时短路
函数检查数组(数组){
返回数组。every((count=>({name})=>(count+=name==“All”)<2)(0);
}
var array1=[{id:1,名称:“All”,值:“All”},{id:2,名称:“Sun”,值:“Sun”},{id:3,名称:“Mon”,值:“Mon”},
array2=[{id:4,名称:“Thur”,值:“Thur”},{id:8,名称:“Mon”,值:“Mon”}],
array3=[{id:1,名称:“Thur”,值:“Thur”},{id:5,名称:“All”,值:“All”},{id:2,名称:“Mon”,值:“Mon”},{id:6,名称:“All”,值:“All”}];
log(checkArray(array1)、checkArray(array2)、checkArray(array3))代码>如果短路次数超过一次,您可能会受到影响
函数检查数组(数组){
返回数组。every((count=>({name})=>(count+=name==“All”)<2)(0);
}
var array1=[{id:1,名称:“All”,值:“All”},{id:2,名称:“Sun”,值:“Sun”},{id:3,名称:“Mon”,值:“Mon”},
array2=[{id:4,名称:“Thur”,值:“Thur”},{id:8,名称:“Mon”,值:“Mon”}],
array3=[{id:1,名称:“Thur”,值:“Thur”},{id:5,名称:“All”,值:“All”},{id:2,名称:“Mon”,值:“Mon”},{id:6,名称:“All”,值:“All”}];
log(checkArray(array1)、checkArray(array2)、checkArray(array3))
Changeif(result.length!==1)
toif(result.length>1)
同样,我会使用.some()
对于这个案例@MuhammadUsman,我在发布我的答案之前没有看到你的评论Changeif(result.length!==1)
toif(result.length>1)
同样,我会使用.some()
对于这个案例@MuhammadUsman,我在发布我的答案之前没有看到你的评论如果只有一个所有
存在,并且其他对象返回false,如何检查,Thankson需要函数外部的count变量:让count=0;array.every({name})=>(count+=name==“All”)<2;返回计数===1
如果只有一个All
存在,并且有其他对象返回false,如何检查此项,感谢您需要函数外部的count变量:let count=0;array.every({name})=>(count+=name==“All”)<2;返回计数===1代码>如果只有一个对象全部存在,并且其他对象返回false,如何检查此项,thanks@codecat你问题中的第2点和第3点有什么区别?“如果对象的名称只能有一个All key name,其他对象返回false。如果对象的名称只能有一个All key name,没有其他对象返回true”。我不理解回答的区别,添加了obj4
示例,用于“如果对象的名称只能有一个全键名称而没有其他对象返回true”obj1
示例。如果对象的名称只能有一个全键名称而没有其他对象返回true”如果只有一个对象全部存在,并且其他对象返回false,如何检查此项,thanks@codecat你问题中的第2点和第3点有什么区别?“如果对象的名称只能有一个All key name,其他对象返回false。如果对象的名称只能有一个All key name,没有其他对象返回true”。我不明白回答的不同之处,添加了“如果名称为o”的obj4
示例