【问题标题】:Filter Array By Another Array (AngularJS)按另一个数组过滤数组(AngularJS)
【发布时间】:2016-03-27 11:51:34
【问题描述】:

我有一个对象数组。该对象包含:
代码
姓名。

示例:

var fullList = [
      {"code":10,"name":"example 10"},
      {"code":50,"name":"example 50"},
      {"code":60,"name":"example 60"}
   ]

我有另一个只有代码的数组,比如:

var filterBy = [10, 50]

我想创建 2 个新数组:
首先 - 仅包含其代码在“filterBy”中的对象
第二 - 仅包含其代码不是 (!) 在“filterBy”中的对象

我该怎么做?

谢谢

【问题讨论】:

    标签: arrays angularjs filter


    【解决方案1】:

    只需传入一个函数作为过滤器表达式

    <div ng-repeat="a in fullList | filter: myFilterBy">
      {{ a }}
    </div>
    

    然后

    $scope.myFilterBy = function(e) {
      return filterBy.indexOf(e.code) !== -1;
    }
    

    小提琴 - https://jsfiddle.net/7tda0bbL/

    【讨论】:

      【解决方案2】:

      你可以创建2个数组如下-

      var arr1 = [];
      var arr2 = [];
      angular.forEach(fullList, function(obj, key) {
          var indx = filterArray(obj);
          if (indx > -1) {
            arr1.push(obj);
          } else {
            arr2.push(obj);
          }
      });
      console.log(arr1);
      console.log(arr2);
      
      function filterArray(arrObj) {
          return [10, 50].indexOf(arrObj.code);
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-08
        • 2014-05-03
        • 2022-01-16
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        相关资源
        最近更新 更多