猿问

如何检查数组结果中的字段

我有来自 API 的数组响应。我想在继续执行 else if 条件之前检查数组结果中的所有日期是否大于 {today's date}。


这就是我所做的


Sample array result:

array = [

{

id = 1

name = Jerry

date = 2020-07-17

subject = Math

},

{

id = 2

name = Tom

date = 2015-07-17

subject = Science

},

{

id = 3

name = Lily

date = 2018-07-17

subject = Biology

}

]

for (i = 0; i < array.length; i++){

 

   if (new Date(array[i].dates) > today) {

     //do something

   

   }else if (new Date(array[i].dates) < today) {

     //do something

 }else{

     //do something

  }

 }

}

  1. 我注意到它正在检查所有条件。当索引变为 1 时,将进入 if,elseif,else 条件。

  2. 所以我发现,在继续执行下一个条件(即 else if 条件)之前检查数组中的所有日期并不是正确的方法。

  3. 例如,我的数组中有三个结果,我想检查第一个条件中每个索引的所有日期,如果它满足条件,那么它将在该条件下执行指定的任务。


白衣染霜花
浏览 86回答 2
2回答

蛊毒传说

您可以使用它Array#every来执行检查。let array = [{    id : 1,    name : 'Jerry',    date : '2020 - 07 - 17',    subject : 'Math'  },  {    id : 2,    name : 'Tom',    date : '2015 - 07 - 17',    subject : 'Science'  },  {    id : 3,    name : 'Lily',    date : '2018 - 07 - 17',    subject : 'Biology'  }];const today = new Date;if(array.every(({date})=>new Date(date.replace(/\s+/g, '')) > today)){  console.log('valid');} else {  console.log('invalid');}

HUH函数

好像有一些错别字。你的代码应该是这样的。for (i = 0; i < array.length; i++) {&nbsp; const date = new Date(array[i].dates);&nbsp; if (date > today) {&nbsp; &nbsp; //do something&nbsp; } else if (date < today) {&nbsp; &nbsp; //do something&nbsp; } else {&nbsp; &nbsp; //do something&nbsp; }}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答