在javascript中基于另一个数组过滤数组

时间:2015-10-29 09:30:40

标签: javascript arrays filter filtering

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

$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" },
];

2 个答案:

答案 0 :(得分: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);




答案 1 :(得分:1)

鉴于您希望按PSAID进行过滤,您可以这样做:

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