javascript - 避免多重嵌套循环

标签 javascript angularjs arrays

如何在没有嵌套 for 循环的情况下实现以下目标:

invitations 是一个具有以下结构的数组:

邀请:

[{
    "id": "TDK4QP788FOLMHQSZAFSYVVQ182RGM83",
    "date_created": "2016-11-08T15:37:04.409Z",
    "events": [{
        "end_time": "21:00",
        "start_time": "20:00"
    }]
}, {
    "id": "DEI4644LAR91SKGUKMR7RTWY3CMC7PCP",
    "date_created": "2016-11-08T03:57:11.145Z",
    "events": [{
        "end_time": "23:45",
        "start_time": "06:00"
    }]
}]

事件:

[{
    "end_time": "23:45",
    "start_time": "06:00"
}, {
    "end_time": "23:45",
    "start_time": "06:00"
}, {
    "end_time": "23:45",
    "start_time": "06:00"
}, ]

我想遍历邀请数组,然后遍历每个事件项,然后将该项的开始和结束时间与事件数组中的每个项进行比较,同时还遍历事件数组。

我想我可能已经做完了。如果没有三个或更多嵌套循环,是否有另一种可能的方法来做到这一点?

提前致谢。

最佳答案

使用映射非常简单。参见 lodash _.map .

var results = _.map(invitations, 'events');

也可以用ES6实现

 var results = invitations.map(function(invitation) {
     return invitation.events;
 });

但是 lodash 的实现速度更快。

关于javascript - 避免多重嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497864/

相关文章:

javascript - 在reactjs中获取api时出错

javascript - 如何为 GraphQL 服务器设计以下解析器?

c# - C# Unity 中数组的长度始终为零

C++ 如何通过管道发送和读取数组?

php - 如何在 foreach 循环中选择 "sub-array"

javascript - 如何从 Vue 网络应用程序中的 firebase 存储下载文件?

javascript - 如何禁用/删除 ASP.NET TreeView 父节点上的单击事件?

javascript - 如何获得 $http API 调用的 promise

javascript - 如果下拉值的第一个字符是空格,如何删除它? Angular.js

javascript - 在 AngularJS 中路由时包含 Controller