Javascript (Angular.js)如何通过过滤器计算数组中有多少项?
在angular JS中,我有一个变量来跟踪人们及其年龄Javascript (Angular.js)如何通过过滤器计算数组中有多少项?,javascript,angularjs,Javascript,Angularjs,在angular JS中,我有一个变量来跟踪人们及其年龄 $scope.people = [ { name: "Lucy", age: "18" }, { name: "Michael", age: "24" }, { name: "Lisa", age: "46" } ]; 用户可以通过一个简单的表单添加更多的人: <input ng-model="newPe
$scope.people = [
{
name: "Lucy",
age: "18"
}, {
name: "Michael",
age: "24"
}, {
name: "Lisa",
age: "46"
}
];
用户可以通过一个简单的表单添加更多的人:
<input ng-model="newPerson.name">
<input ng-model="newPerson.age">
<button ng-click="addNewPerson()">Add</button>
添加
在页面底部,我想要一个简单的饼图,显示按年龄组划分的人口,例如(>18,18-25,26-35,36-45,45您可以使用如下库:
($scope.people)。filter(x=>x.age>18&&x.age 18&&item.age您可以使用如下库:($scope.people)。filter(x=>x.age>18&&x.age 18&&item.age这里有一种使用and实现此功能的方法。请注意,此筛选器应用于$scope.agebrands
,其中包含由forEach
循环准备的预处理数据。这对于小范围值(如人的年龄)非常有效。如果您不使用ngng repeat
,您不想多次过滤数据
angular.module('ageBracketApp',['ageBracketApp.controllers']);
angular.module('ageBracketApp.controllers',[]).controller('ageBracketController',['$scope',
职能($范围){
$scope.age括号=[];
$scope.people=[{
姓名:“露西”,
年龄:“18”
}, {
姓名:“迈克尔”,
年龄:“24”
}, {
姓名:“丽莎”,
年龄:"46"
}];
angular.forEach($scope.people,function(value,key){
$scope.agebrands[value.age]=$scope.agebrands[value.age]+1 | | 1;
});
$scope.addPerson=函数(){
var age=Math.floor(Math.random()*(123-1+1))+1;//在1和123之间随机
$scope.people.push({
名称:'Person'+($scope.people.length+1),
年龄:年龄
});
$scope.agebrands[age]=$scope.agebrands[age]+1 | | 1;
};
$scope.ageBracketCount=函数(最小值、最大值){
max=max | | Number.max|u SAFE|u整数;
返回$scope.age括号.filter(函数(值、索引、数组){
return index>=min&&index这里有一种使用and实现此功能的方法。请注意,此筛选器应用于$scope.agebrands
,其中包含由forEach
循环准备的预处理数据。这对于小范围值(如人的年龄)非常有效。如果不使用ng-r,这是一种替代方法epeat
并且您不希望多次过滤数据
angular.module('ageBracketApp',['ageBracketApp.controllers']);
angular.module('ageBracketApp.controllers',[]).controller('ageBracketController',['$scope',
职能($范围){
$scope.age括号=[];
$scope.people=[{
姓名:“露西”,
年龄:“18”
}, {
姓名:“迈克尔”,
年龄:“24”
}, {
姓名:“丽莎”,
年龄:"46"
}];
angular.forEach($scope.people,function(value,key){
$scope.agebrands[value.age]=$scope.agebrands[value.age]+1 | | 1;
});
$scope.addPerson=函数(){
var age=Math.floor(Math.random()*(123-1+1))+1;//在1和123之间随机
$scope.people.push({
名称:'Person'+($scope.people.length+1),
年龄:年龄
});
$scope.agebrands[age]=$scope.agebrands[age]+1 | | 1;
};
$scope.ageBracketCount=函数(最小值、最大值){
max=max | | Number.max|u SAFE|u整数;
返回$scope.age括号.filter(函数(值、索引、数组){
返回索引>=最小值和索引注释,Angular 1.3及更高版本中可使用别名as
。注意,Angular 1.3及更高版本中可使用别名as
。
<ul>
<li ng-repeat="item in people | filter:filterFunction as results"></li>
</ul>
<p>{{results.length}}</p>
function filterFunction(item) {
return item.age > 18 && item.age <= 25;
}