【问题标题】:Filter array based on another array in javascript [duplicate]基于javascript中的另一个数组过滤数组[重复]
【发布时间】:2015-10-29 09:30:40
【问题描述】:

我有两组数组,我想根据第二个数组过滤我的第一个数组并将值存储在第三个数组中

$scope.SaAssingTo = [
    { "PSAID": 1, "Name": "Ajay", "EMail": "ajay@cgi.com" },
    { "PSAID": 2, "Name": "pravin", "EMail": "ajay@cgi.com" },
    { "PSAID": 3, "Name": "anu", "EMail": "ajay@cgi.com" },
    { "PSAID": 4, "Name": "mohan", "EMail": "ajay@cgi.com" },
    { "PSAID": 5, "Name": "java", "EMail": "ajay@cgi.com" },
    { "PSAID": 6, "Name": "veenu", "EMail": "ajay@cgi.com" },
    { "PSAID": 7, "Name": "Ajay", "EMail": "ajay@cgi.com" },
    { "PSAID": 8, "Name": "pravin", "EMail": "ajay@cgi.com" },
    { "PSAID": 9, "Name": "anu", "EMail": "ajay@cgi.com" },
    { "PSAID": 10, "Name": "mohan", "EMail": "ajay@cgi.com" },
    { "PSAID": 11, "Name": "java", "EMail": "ajay@cgi.com" },
    { "PSAID": 6, "Name": "veenu", "EMail": "ajay@cgi.com" }
];
var filter array=[2,4,6,8];
var resultarray=[
    { "PSAID": 2, "Name": "pravin", "EMail": "ajay@cgi.com" }    
    { "PSAID": 4, "Name": "mohan", "EMail": "ajay@cgi.com" },        
    { "PSAID": 6, "Name": "veenu", "EMail": "ajay@cgi.com" },     
    { "PSAID": 8, "Name": "pravin", "EMail": "ajay@cgi.com" },
];

【问题讨论】:

标签: javascript arrays filter filtering


【解决方案1】:

您可以将.filter.indexOf 一起使用,就像这样

$scope = {}; // just for example

$scope.SaAssingTo = [
  { "PSAID": 1, "Name": "Ajay", "EMail": "ajay@cgi.com" },
  { "PSAID": 2, "Name": "pravin", "EMail": "ajay@cgi.com" },
  { "PSAID": 3, "Name": "anu", "EMail": "ajay@cgi.com" },
  { "PSAID": 4, "Name": "mohan", "EMail": "ajay@cgi.com" },
  { "PSAID": 5, "Name": "java", "EMail": "ajay@cgi.com" },
  { "PSAID": 6, "Name": "veenu", "EMail": "ajay@cgi.com" },
  { "PSAID": 7, "Name": "Ajay", "EMail": "ajay@cgi.com" },
  { "PSAID": 8, "Name": "pravin", "EMail": "ajay@cgi.com" },
  { "PSAID": 9, "Name": "anu", "EMail": "ajay@cgi.com" },
  { "PSAID": 10, "Name": "mohan", "EMail": "ajay@cgi.com" },
  { "PSAID": 11, "Name": "java", "EMail": "ajay@cgi.com" },
  { "PSAID": 6, "Name": "veenu", "EMail": "ajay@cgi.com" }

];

var filter = [2,4,6,8];
var result = $scope.SaAssingTo.filter(function (el) {
  return filter.indexOf(el.PSAID) >= 0;
});

console.log(result);

【讨论】:

    【解决方案2】:

    鉴于您想按PSAID 过滤,您可以这样做:

    var resultArray = $scope.SaAssingTo.filter(function (item) {
        return filterArray.indexOf(item.PSAID) !== -1;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多