如何 _.flatten 使用父数组和嵌套数组? (lodash)

how to _.flatten with a parent array and an array nested ? (lodash)

我有一个名为 sports 的数组,在该数组中还有另一个名为 leagues 的数组,但我需要将这些数组变为 _.flatten,因为我对 Angular 过滤器。

查看数据,在包含 "name":"Live Betting" 的第一个数组中还有另一个名为 "leagues" 的数组,这些是我正在谈论的数组。

[
  {
    "id": 26,
    "name": "LIVE Betting",
    "priority": 0,
    "leagues": [
      {
        "id": 3042,
        "parent": 1000,
        "name": "LIVE BETTING - NBA",
        "sport": {
          "id": 26,
          "name": "LIVE Betting"
        },
        "lineType": "G",
        "priority": [
          0,
          0
        ],
        "part": "0"
      },
      ...

这是返回该数组的承诺的解决方案,如您所知,数据由 Sports

返回
      resolve: {
        Sports: function(SportsFactory, AuthFactory, $q) {
          var defer = $q.defer();
          AuthFactory.getCustomer().then(function(customer) {
            SportsFactory.getSportsWithLeagues(customer).then(function(sports) {                  
              defer.resolve(sports);
            });
          });
          return defer.promise;
        }
      }

这里是我调用解析器的控制器 Sports

  .controller('SportsController', function($scope, AuthFactory,
               SportsFactory, Sports) {
    console.log(angular.toJson(Sports, 'pretty'));
    $scope.sports = [];
    $scope.sportPromise = Sports;

这里有一个 Plunkr,你可以更轻松地查看它 http://plnkr.co/edit/FJ45nV6gdwp3SkRglPeW?p=info

我不确定我是否完全理解您要查找的内容,但我认为您可以执行以下操作。

在您的控制器中添加一个函数来创建展平数组:

 $scope.leagues = function(){
  var allLeagues = [];
  _.each(mySports, function(sport){
    allLeagues.push.apply(allLeagues, sport.leagues);
  });
  return allLeagues;
};

然后你可以绑定到联赛功能:

<div ng-repeat="league in leagues() | filter:query">
  {{league.name}}
</div>