繁体   English   中英

如何根据数组对象javascript中的条件检查返回布尔值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM