验证数组javascript angularjs是否有多个索引
validate if there are multiple index on array javascript angularjs
所以我有了这个数组
array = [
{id:1,value:1},
{id:2,value:1},
{id:1,value:2},
{id:1,value:3},
{id:2,value:2},
{id:1,value:4},
{id:2,value:3}
]
我想把它整理一下,输出如下
array = [
{id:1,value:4},
{id:2,value:3}
]
我想用javascript实现,还是angularjs有能力做到这一点?谢谢你。
大家好,请看这里http://jsbin.com/nozag/2/edit?html,js,output
var app = angular.module('app', []);
app.controller('firstCtrl', function($scope){
$scope.array = [
{id:1,value:1},
{id:2,value:1},
{id:1,value:2},
{id:1,value:3},
{id:2,value:2},
{id:1,value:4},
{id:2,value:3}
];
$scope.uniq = [];
for (var i=$scope.array.length-1; i>0; i--)
{
var arr = $scope.array[i];
var contains = false;
angular.forEach($scope.uniq, function(u){
if (u.id==arr.id)
{
contains = true;
}
});
if(!contains){
$scope.uniq.push(arr);
}
}
});
假设您想要计算具有特定id的对象的数量,那么在Underscore.js中定义的countBy如何?
array = _.countBy(array, function(obj) { return obj.id; });
用Java脚本写一个group by函数
function groupBy( array , f )
{
var groups = {};
array.forEach( function( o )
{
var group = JSON.stringify( f(o) );
groups[group] = groups[group] || [];
groups[group].push( o );
});
return Object.keys(groups).map( function( group )
{
return groups[group];
})
}
,称其为
var result = groupBy(list, function(item)
{
return [item.id];
});
,在你的情况下,它将返回数据,即结果的值将是
[
[
Object { id=1, value=1},
Object { id=1, value=2},
Object { id=1, value=3},
Object { id=1, value=4}
],
[
Object { id=2, value=1},
Object { id=2, value=2},
Object { id=2, value=3}
]
]
现在写一个函数来对相同id的值求和
function getData(groupByCategory)
{
var finalData=[];
for(var i=0;i< groupByCategory.length;i++)
{
var temp=0;
for(var j=0;j<groupByCategory[i].length;j++)
{
temp+=parseInt(groupByCategory[i][j].value);
}
finalData.push({"category":groupByCategory[i][0].id, "value":temp})
}
console.log(finalData);//final data is your required results
}
,称其为getData(结果);工作的小提琴在这里
虽然函数看起来相当大。但它是有效的。我在想别的办法。
相关文章:
- 测试索引值是否等于某个数字的倍数
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配
- 使用JQuery检查数组的索引中是否存在字符串
- 是否可以在postgreSQL中将表A ID索引为表B userId
- 如何检查数据表是否有任何包含字符串的行并获取它的行索引
- 如何确定数组中的值是否位于两个附加数组的所有并行索引的值之间
- 是否可以在不使用索引号的情况下访问 json 数组元素
- 我想知道是否可以更改形状的属性 z 索引?诺基亚地图API
- 如何检查下一个索引是否存在 - LODASH
- JavaScript - 检查一个数组是否与另一个数组具有相同的索引
- 在ng-options中,是否可以使用“(索引,项目)在vm.items”语法中进行预选
- 是否应该使用数组名称和索引来命名 JavaScript 对象
- 检查二维数组索引是否存在
- 第三方(随机网站访问者)是否有可能通过 php 表单更新.html索引文件中的某些.js代码
- 如何检查字符串是否是索引为[JAVASCRIPT]的子字符串
- 是否对JavaScript地图对象进行了索引以优化Map.get
- 检查带有索引的对象是否在数组中
- 是否可以将文本字段值绑定到数组的特定索引中的元素
- 检查HTML行文本框是否为空,并且除最后一行外,选择索引是否为零
- 如何检查数组索引是否存在