我有两个包含特殊字符的数组,试图将一个数组的每个元素与另一个数组进行比较,并获得在另一个数组中找不到的元素。但是我的方法不能正常工作

var specialChar = ['!','@','#','$','%','&'];
   var $ scope.inp = ['!','*','#'];

在我上面的示例中,元素'*'不存在specialChar

我尝试了这种逻辑-

    $scope.validateChar = function(specialChar,inp){
  var i,j;
     for (i=0,j=0; i<specialChar.length && j<inp.length;) {
         if (specialChar[i] < inp[j]) {
             ++i;
         } else if (specialChar[i] == inp[j]) {
             ++i; ++j;
         } else {
             $scope.notFoundChar = inp[j];


错误提示显示特殊字符$ scope.notFoundChar未找到

             $scope.charAllowedText = false;
             return;
         }
        }

       }


请在这里指出问题所在?

最佳答案

您可以像下面那样过滤掉特殊字符“ *”

var result=[]
inp.map(function(inpElement){
  if(specialChar.indexOf(inpElement)==-1)
   result.push(inpElement)
})
console.log(result)

09-25 19:59