[英]how to return boolean value based on condition check in array object javascript
我有对象数组 obj1, obj2,
如果对象名称不能有All
键名返回true
如果对象名只能有一个All
键名,其他对象返回 false
如果对象名只能有一个All
键名且没有其他对象返回 true
如果对象的名称有太多的键名All
返回假
基于上述条件如何在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
您可以将Array#every
短路计数超过 1。
function checkArray(array) { return array.every((count => ({ name }) => (count += name === "All") < 2)(0)); } var array1 = [{ id: 1, name: "All", value: "all" }, { id: 2, name: "Sun", value: "sun" }, { id: 3, name: "Mon", value: "mon" }], array2 = [{ id: 4, name: "Thur", value: "thur" }, { id: 8, name: "Mon", value: "mon" }], array3 = [{ id: 1, name: "Thur", value: "thur" }, { id: 5, name: "All", value: "all" }, { id: 2, name: "Mon", value: "mon" }, { id: 6, name: "All", value: "all" }]; console.log(checkArray(array1), checkArray(array2), checkArray(array3));
您可以检查数组是否有任何name = "All"
对象。
然后,如果return true
name = "All"
对象,数组的长度为1
name = "All"
function checkObj(arr) {
const hasAll = arr.some(o => o.name === "All")
return (arr.length === 1 && hasAll) || !hasAll
}
这是一个片段:
function checkObj(arr) { const hasAll = arr.some(o => o.name === "All") return (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,name:"Thur",value:"thur"},{id:8,name:"Mon",value:"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,name:"All",value:"all"}]; console.log( checkObj(obj1) ) console.log( checkObj(obj2) ) console.log( checkObj(obj3) ) console.log( checkObj(obj4) )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.