您好我需要比较两个字符串,但没有看到排列如何在JavaScript中比较两个字符串,忽略字符排列
一样,如果string1为
var a="apple#1;banana#2;orange#3"
和String2的是
var b="banana#2;orange#3;apple#1"
a.compare(b)应该是正确的,因为数值相同只是排列不同
if(!a.compare(b)){
alert("not matched");
}
else{
alert("matched");
}
我做了一个,但其过于冗长的代码我在这里分享它:
function ReturnCollection (str){
var arr=str.split(';');
var returnarr=[];
for(var i=0;i<arr.length;i++){
var indx=arr[i].indexOf('#');
var text=arr[i].substr(0,indx);
var val=arr[i].substr(indx+1);
returnarr.push([text,val]);
}
return returnarr;
}
function Matching(){
var afinal=ReturnCollection(a);
var bfinal=ReturnCollection(b);
bflag=false;
outerloop:
for(i=0;i<afinal.length;i++){
for(j=0;j<bfinal.length;j++){
if(bfinal[j][1] === afinal[i][1]){
continue outerloop;
}
}
bflag=true;
break outerloop;
}
if(bflag){
alert("not matched");
}
}
你的意思是实际字符排列或项目的安排?忽略字符排列''annaba#1; norage#2; pleap#3''会匹配。 –
没有第一个将是好的苹果将是苹果,但#后有唯一标识符,所以必须匹配 – Tanmay