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%!重要;}