簡體   English   中英

返回AngularJS中兩個數組值之間的匹配

[英]Return match between two array values in AngularJS

我有一個問題是在兩個數組元素之間返回匹配數組,請幫忙重要的是這里是我的代碼

      $scope.MacA = [
  {
    name: '24:fd:52:c3:d8:35',
    sector: 'A23'
  }, 

  {
    name: '56:db:30:4b:57:45',
    sector: 'It support'
  },
  {
    name: 'b6:b6:76:6b:e9:00',
    sector: 'A24'
  },
  {
    name: 'e8:74:e6:a1:14:16',
    sector: 'Vodafone Guest'
  },
  {
    name: 'dc:4a:3e:b7:32:0e',
    sector: 'Direct HP officejet'
  }
  ,
  {
    name: '7c:4c:a5:32:13:29',
    sector: 'skyb7'
  }

]和數組2是

scope.match = ['dc:4a:3e:b7:32:0e','7c:4c:a5:32:13:29' ];

這是返回匹配的函數,如果找到的話

 $scope.getList = function(){
      // $scope.wifiList = WifiService.list();
      var c = $scope.MacA;
      var m = WifiService.list();
      for(var i = 0;i < c.length;i++) {
        for(var j = i;j < m.length;j++) { // Notice the j = i;
          if (c[i].name === m[j]) {
            $scope.result = c[i].sector;
        // $scope.result = 'Its working';
        break;
          } else {
             $scope.result = "Sorry!";
          }
        };
      };
  return $scope.result;
}

您沒有指定您想要的結果,但這是一個查找匹配項的可能版本。

var result = [];
match.forEach(m => result.push(MacA.find(macA => macA.name === m)));
   MacA = [
  {
    name: '24:fd:52:c3:d8:35',
    sector: 'A23'
  }, 

  {
    name: '56:db:30:4b:57:45',
    sector: 'It support'
  },
  {
    name: 'b6:b6:76:6b:e9:00',
    sector: 'A24'
  },
  {
    name: 'e8:74:e6:a1:14:16',
    sector: 'Vodafone Guest'
  },
  {
    name: 'dc:4a:3e:b7:32:0e',
    sector: 'Direct HP officejet'
  },
  {
    name: '7c:4c:a5:32:13:29',
    sector: 'skyb7'
  }
]

Match = ['dc:4a:3e:b7:32:0e','7c:4c:a5:32:13:29' ];

MacA.filter(({name}) => Match.includes(name)).map(({sector}) => sector)
// RETURNS // ["Direct HP officejet", "skyb7"]

所以,鑒於上面的代碼,這樣的事情:

 $scope.getList = function(){
   return $scope.result = $scope.MacA.filter(({name}) => $scope.match.includes(name)).map(({sector}) => sector)
}

我重構了你的一些代碼。

 $scope.getList = function(){
  var devices = $scope.MacA;
  var macList = WifiService.list();
  var results = devices.reduce((acc, device) => acc.concat(macList.find(current.name)? [current.sector]:[]), []);
  return results.length? $scope.results = results : $scope.results = 'Sorry!';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM