【发布时间】:2021-03-16 20:10:25
【问题描述】:
我有一个来自 API 的数组响应。我想检查数组结果中的所有日期,如果它大于 {今天的日期},然后再进行 else if 条件。
这就是我所做的
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 时,它会进入 if,elseif,else 条件。
- 所以我发现在进入下一个条件(即 else if 条件)之前检查数组中的所有日期不是正确的方法。
- 例如,我的数组中有三个结果,我想检查第一个条件中每个索引的所有日期,如果它满足条件,那么它将在该条件下执行其指定的任务。
【问题讨论】:
-
事实上,您的问题确实不清楚。您能否edit it 包含一个示例数组以及您期望的结果?或者可能是伪代码?
-
在第一个
if中使用new Date(array[i].dates),它假定一个对象数组,每个对象都有一个dates属性。在您的第二个if中,您使用new Date(array[i]).dates,它尝试将数组元素本身解析为Date,然后从Date中获取dates属性,这将失败,因为Date对象确实(本机)没有dates属性。else也是一个语句,而不是一个函数 - 不需要括号。 -
我犯了一些拼写错误。我已经有了答案。谢谢你。
标签: javascript arrays for-loop if-statement