簡體   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