如何在对象中进行搜索过滤?

时间:2016-10-27 19:52:33

标签: javascript angularjs

请帮助修复脚本。

我在$ scope.peoples

中遵循数据结构

我需要找到关注对象:'{name:'dima',age:'4'}'并将其放在$ scope.filteredPeoples中。我需要使用过滤器。

我的过滤版本:

app.controller('mainController', ['$scope', 'namesFilter', function($scope, namesFilter) {
      $scope.peoples = [
        {name: 'anton', age: '1'},
        {name: 'serg', age: '2'},
        {name: 'sveta', age: '3'},
        {name: 'dima', age: '4'},
        {name: 'stas', age: '5'},
        {name: 'pavel', age: '6'}
      ];
      $scope.filteredPeoples = namesFilter($scope.peoples, {name: 'dima'});
}]).filter('names',function() {
      return function(array) {
                var result = [];

        array.forEach(function(item, i, arr) {
          if(item.color == 'dima') {
            result.push(item);
          };
        });   

        return result;
      };
    });    

但它过滤器不起作用。控制台不显示错误消息,但filteredPeoples为空数组。

JSFIDDLE

1 个答案:

答案 0 :(得分:1)

您需要检查正确的对象属性:

if(item.name== 'dima') { //not item.color
            result.push(item);
          };

这是您的updated working fiddle