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