gpt4 book ai didi

javascript - 如何在忽略字符排列的情况下比较JavaScript中的两个字符串

转载 作者:行者123 更新时间:2023-12-02 12:42:21 24 4
gpt4 key购买 nike

嗨,我需要比较两个字符串,但没有看到排列

就像 string1 是

var a="apple#1;banana#2;orange#3"

而 String2 是

var b="banana#2;orange#3;apple#1" 

a.compare(b) 应该给出 true,因为值相同,只是排列不同

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");
}
}

最佳答案

这是一个应该可以解决问题的单行:

string.split('').sort().join('')

其工作原理是将字符串转换为数组,对数组进行排序,然后折叠回字符串(按字符排序)。您可以在两个字符串上运行它并进行比较

console.log(a.split('').sort().join('') == b.split('').sort().join('')) // true

您可以使用 ES6 和字符串强制转换使其更简洁:

[...a].sort()+'' === [...b].sort()+''

关于javascript - 如何在忽略字符排列的情况下比较JavaScript中的两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38795208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com