【发布时间】:2021-10-14 11:26:36
【问题描述】:
使用下面的对象数组结构,我需要一种方法来扫描此数组中的所有对象元素,即周一到周日并且满足以下条件时,将 weeklyFlag 重置为 false,即:
weeklyFlag is true
weeklyStartTime is null
weeklyEndTime is null
然后重置weeklyFlag to false
因此,在下面的示例中使用上述条件,在满足上述条件的任何地方,我都需要将该特定数组对象的 weeklyFlag 重置为 false。
所以这意味着星期一、星期二的 startEnd[1] 索引和星期六。
let weeklyTimes = [
{
"day": "Monday",
"startEnd": [
{
"weeklyFlag": true,
"weeklyStartTime": null,
"weeklyEndTime": null
}
]
},
{
"day": "Tuesday",
"startEnd": [
{
"weeklyFlag": true,
"weeklyStartTime": "2021-08-08T14:00:00.000Z",
"weeklyEndTime": "2021-08-08T15:00:00.000Z"
},
{
"weeklyFlag": true,
"weeklyStartTime": null,
"weeklyEndTime": null
}
]
},
{
"day": "Wednesday",
"startEnd": [
{
"weeklyFlag": false,
"weeklyStartTime": null,
"weeklyEndTime": null
}
]
},
{
"day": "Thursday",
"startEnd": [
{
"weeklyFlag": true,
"weeklyStartTime": "2021-08-08T14:00:00.000Z",
"weeklyEndTime": "2021-08-08T15:00:00.000Z"
},
{
"weeklyFlag": true,
"weeklyStartTime": "2021-08-08T14:00:00.000Z",
"weeklyEndTime": "2021-08-08T15:00:00.000Z"
}
]
},
{
"day": "Friday",
"startEnd": [
{
"weeklyFlag": false,
"weeklyStartTime": null,
"weeklyEndTime": null
}
]
},
{
"day": "Saturday",
"startEnd": [
{
"weeklyFlag": true,
"weeklyStartTime": null,
"weeklyEndTime": null
}
]
},
{
"day": "Sunday",
"startEnd": [
{
"weeklyFlag": false,
"weeklyStartTime": null,
"weeklyEndTime": null
}
]
}
];
我正在查看嵌套的 for 循环,但不确定是否可以使用数组映射或过滤器?
【问题讨论】:
-
filter 不是你想要的,如果你想返回新数组,你只会使用 map
-
这在一定程度上取决于您的应用程序的结构。如果您想修改现有数组的
weeklyFlag,那么 for 循环将是最佳选择,因为您修改现有数组而不是创建新数组(例如使用 map)
标签: javascript arrays loops nested-loops