Angularjs TypeError:无法读取属性';年龄';未定义的

Angularjs TypeError:无法读取属性';年龄';未定义的,angularjs,Angularjs,以下代码是我的观点“ {{obj}} 这是我的JavaScript代码。我使用angular创建了一个自定义过滤器 app.controller('myController', function($scope){ $scope.myData ={arr: [{name:'Rohith',age:23},{name:'Arun',age:24},{name:'Venki',age:25}]}; }); app.filter('myfilter',function(

以下代码是我的观点“


{{obj}}
这是我的JavaScript代码。我使用angular创建了一个自定义过滤器

 app.controller('myController', function($scope){

       $scope.myData ={arr: [{name:'Rohith',age:23},{name:'Arun',age:24},{name:'Venki',age:25}]};

  });

  app.filter('myfilter',function(){
      return function(input, minage){
              var filtered = [];
              if(!minage){
                         minage = 24;
               }
               for(var i=0;i<=input.length;i++){
                        var value = input[i];
                        if(value.age >= minage){
                                 filtered.push(value);
                        }
               }
               return filtered;
       }
  });
app.controller('myController',函数($scope){
$scope.myData={arr:[{name:'Rohith',age:23},{name:'Arun',age:24},{name:'Venki',age:25}]};
});
app.filter('myfilter',function(){
返回函数(输入,最小值){
var筛选=[];
如果(!minage){
minage=24;
}
对于(变量i=0;i=minage){
过滤。推送(值);
}
}
返回过滤;
}
});
当我尝试运行时,控制台显示:

TypeError:无法读取未定义的属性“age”


我的代码出了什么问题?请解释一下,问题出在数组索引中

for(var i=0;i<=input.length;i++){
}

Plunker:

您的
输入
变量等于
{name:'Rohith',age:23}
,它是单个对象,而不是数组。您不应该这样访问

var value = input[i];
应该是


var value=input

调试的基础:Try
console.log(value)
在阅读
value.age
之前,请查看它的输出内容。一些防御性编程的概念可能会有所帮助,在未检查值是否为“nothing”的情况下,不应使用value属性。另一个选项是为每个循环使用一个,这可以确保您获得一个有效项,并且不会超出范围。
for (var i = 0; i < input.length; i++) {
}
var value = input[i];