如何 _.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>
我有一个名为 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>