您好我需要比較兩個字符串,但沒有看到排列如何在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