Javascript Angularjs按对象结果拆分数组

Javascript Angularjs按对象结果拆分数组,javascript,angularjs,arrays,object,Javascript,Angularjs,Arrays,Object,我有一个包含如下对象的数组: { __v: 0, _id: "5835ced6ffb2476119a597b9", castvote: 1, time: "2016-11-23T17:16:06.676Z", userid: "57e0fa234f243f0710043f8f" } 如何创建一个新数组,通过castvote对其进行过滤?就像一个数组包含对象,其中castvote为1,而castvote为2?您可以在控制器中使用执行此操作 $scope.castvoteOne

我有一个包含如下对象的数组:

{
  __v: 0,
  _id: "5835ced6ffb2476119a597b9",
  castvote: 1,
  time: "2016-11-23T17:16:06.676Z",
  userid: "57e0fa234f243f0710043f8f"
}

如何创建一个新数组,通过
castvote
对其进行过滤?就像一个数组包含对象,其中
castvote
为1,而
castvote
为2?

您可以在控制器中使用执行此操作

$scope.castvoteOne = $filter('filter')($scope.results, {castvote: 1});
$scope.castvoteTwo = $filter('filter')($scope.results, {castvote: 2});

如建议

您可以使用按所需类型进行常规操作

_.groupBy($scope.results, "castvote")

您可以使用
Array.prototype.reduce
哈希表
将数组分组为一个对象,其中key作为
castvote
,value作为具有特定
castvote
的元素

现在您可以使用
result[castvote]
获取特定
castvote

请参见下面的演示:

目前,投票表决:1,时间:“2016-11-23T17:16-11-17 17:17:17:17:17:16:17:17:17:16:17:17:17:16:17:16:06.676Z”,用户id:“用户id:”用户id:“57e0-11-11-11-23T17:16:16.67666.676Z”,用户id:“用户id:“57e0-11-11-11-17:17:17:17:17:16:16.676.676Z”,用户id,”用户id,”用户id,”用户id:“用户id:“用户id::“57e0 0据id:“57e0 0-10-10-10-10-10-10-10-10-10-10-10-10-10-2310-10-2310-23-23-237-23-2317-2317-2317-23-23-23-23-17-17-17-17-17-17-17-17 17 17 6Z”,用户标识:“57e0fa234f243f0710043f8f”}] var result=array.reduce(函数(散列){ 返回函数(p,c){ 如果(!散列[c.castvote]){ 散列[c.castvote]=[]; p[c.castvote]=散列[c.castvote]; } 哈希[c.castvote].push(c); 返回p; }; }(Object.create(null)),{}; //使用结果[castvote]获取该castvote的结果 console.log(结果);
.as控制台包装{top:0;最大高度:100%!重要;}