JSFiddle - React, Tailwind, and code Playground
HTML
<div ng-app>
<div ng-controller="Foo as ctrl">Normalized Values:
<ul ng-repeat="group in groups">{{group.id}}
<li ng-repeat="item in nomalizedItems(group.id) track by item.id">{{item.id}}:{{item.normalizedValue}}</li>
</ul>
</div>
</div>
JavaScript
function Foo($scope) {
$scope.groups = [{
id: "group1"
}, {
id: "group2"
}];
$scope.originalItems = [{
id: "a",
groupid: "group1",
value: 2
}, {
id: "b",
groupid: "group1",
value: 4
}, {
id: "c",
groupid: "group1",
value: 6
}, {
id: "d",
groupid: "group2",
value: 8
}, {
id: "e",
groupid: "group1",
value: 10
}];
$scope.nomalizedItems = function (groupid) {
var groupItems = $scope.originalItems.filter(function (item) {
return item.groupid == groupid
});
var values = groupItems.map(function (item) {
return item.value;
});
var maxValue = Math.max.apply(null, values);
return groupItems.map(function (item) {
return {
id: item.id,
normalizedValue: item.value / maxValue
};
});
};
}