需求描述:在一组字符串中以不同的
顺序找出数组中的一组元素:
复制代码代码如下所示:
{ 'abcd,你好,'bdca ','olleh ','cadb ','nba ','abnABC}
需要找到的结果是:
复制代码代码如下所示:
{ 'abcd ','bdca ','cadb}
这里的关键点是判断字符串字符串是否只有字符顺序不同,只要
解决整个关键点就更好了。
方法1:
复制代码代码如下所示:
无功stringclassify =
功能(ARR){
无功arrlength = arr.length,
obj = { },
我= 0,
努姆,项目名称,第一项,strlength;
为(;;i < arrlength;i++){
项目= ARR {我};
strlength = item.length;
数字= 0;
将单个字符插入Unicode编码中。
进行计算和编码
为(J = 0;J < strlength;j++){
Num = item.charcodeat(J);
}
如果(!第一项){
第一项=项目;
obj {数量}推(项目);
}
通过
检测是否要添加字符串的第一个字符
在另一个字符串中出现,以避免下列
条件 { / / 'ad'、‘','bc}
如果(~ firstitem.indexof(item.charat(0))){
obj {数量}推(项目);
}
}
(名为obj){
console.log(obj {姓名});
}
};
方法1使用遍历字符串中的每个字符,然后将单个字符
转换成Unicode编码,并计算编码和取取。编码和ABCD和BDCA将是一致的。最后,编码和
目标的关键是用来
保存密码和一致的字符串。
方法1,需要注意的是字符串AD和BC的unicode编码是相同的。这时,我们需要添加更多的判断来检测任何字符串中的第一个字符是否出现在另一个字符串中。
方法2:
复制代码代码如下所示:
无功stringclassify =
函数(){()
无功arrlength = arr.length,
obj = { },
我= 0,
努姆,项目名称,strarr,纽世达;
为(;;i < arrlength;i++){
项目= ARR {我};
strarr = ARR {我}。分裂();
StrArr.sort();
纽世达= strarr.join('');
如果(!obj {纽世达}){
obj {纽世达} = { };
}
obj {纽世达}推(项目);
}
(名为obj){
console.log(obj {姓名});
}
};
方法2是将字符串转换为数组,然后对数组进行
排序排序。当ABCD和重新排列进行排序的排序,他们将成为ABCD。将有序字符串保存为对象的键,以保存有序字符串。
事实上,这两种方法的原理是将字符转换为Unicode编码,但只有方法1是显式转换,而方法2中使用的排序排序将隐式转换。