Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json AngularJS过滤器将对象压缩为单个对象数组_Json_Angularjs_Angularjs Filter - Fatal编程技术网

Json AngularJS过滤器将对象压缩为单个对象数组

Json AngularJS过滤器将对象压缩为单个对象数组,json,angularjs,angularjs-filter,Json,Angularjs,Angularjs Filter,我的ng repeat返回数组如下所示: [{"day":"10","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}] [{"day":"3","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}] 我想创建一个过滤器,将数组组合成一个数组,这样我就可以

我的ng repeat返回数组如下所示:

[{"day":"10","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}]
[{"day":"3","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}]
我想创建一个过滤器,将数组组合成一个数组,这样我就可以使用orderBy |“day”

[
{"day":"10","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"},
    {"day":"3","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"
}]
我有一个过滤器用来过滤我的整个对象,但是这里的逻辑要简单得多,我不知道如何调整过滤器我必须连接这些对象

angular.module('hcApp')
.filter('combine', function() {
  return function(items) {
    var temp = [];
    var result = temp.concat.apply(temp,items.map(function(itm){ 
      return temp.concat.apply(temp, Object(itm).map(function(key){ 
       return itm.year[key]; 
  }));
}));  
    return result;
  };
});

我认为,由于数据是以二维数组的形式出现的,为了将其展平,您可以在过滤器上执行
concat

angular.module('hcApp')
.filter('combine', function() {
  return function(items) {
     return [].concat.apply([],items)
          .sort(function(a,b){ return +a.day < b.day ? -1 : 1; });//and add sort as well probably
  };
});
angular.module('hcApp')
.filter('combine',function(){
返回函数(项目){
返回[]。concat.apply([],项)
.sort(函数(a,b){return+a.day

我认为您可以使用
.push()
将它们连接在一起。由于每个返回的数组由1个元素组成,因此需要访问每个数据的第一个元素,并将其推送到另一个最终数组

  var some_data_1 = [{"day":"10","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}];
  var some_data_2 = [{"day":"3","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}] ;

  var temp = [];
  //push the first element(the only element) in the returning arrays
  temp.push(some_data_1[0], some_data_2[0]);

这是工作指南:

太棒了,非常感谢您的帮助。不工作的原因,但它似乎是应该的。我要放一个垃圾桶together@byrdr对你有用吗。看到了来自美国的另一个问题。如果你有问题,你可以发布一个工作的plunk il尝试帮助出于某种原因,我无法让过滤器与我的设置一起工作,即使生成的阵列与Bin中的阵列相同,在我的视图中确实与你的过滤器一起工作。我要把一个弹子放在一起