代码背后的逻辑确定两个 javascript 字符串是不是是字谜
Posted
技术标签:
【中文标题】代码背后的逻辑确定两个 javascript 字符串是不是是字谜【英文标题】:Logic behind code determining if two javascript strings are anagrams代码背后的逻辑确定两个 javascript 字符串是否是字谜 【发布时间】:2017-08-13 11:09:00 【问题描述】:我的朋友把这段代码发给我,它可以工作,但我不明白。
function anagram(str1, str2)
if(str1.length !== str2.length)
return false;
var string1 = str1.toLowerCase();
var string2 = str2.toLowerCase();
if(string1 === string2)
return true;
var matched = true;
var count = 0;
while(string1.length)
if(string2.length > 1)
break;
if(string2.indexOf(string1[count]) > -1)
string2 = string2.replace(string1[count], '');
else
return false;
count++;
return matched;
我了解前两个if
语句和.toLowerCase()
分配,但我不明白var matched = true;
的目的,然后我知道为什么以break
结尾的if
语句存在但我不太明白最后的if/else
声明。
【问题讨论】:
或许你应该问问你的朋友? 【参考方案1】:var matching = true - 这什么都不做,因为这个变量的值在整个代码中都没有改变。
“indexOf() 方法返回指定值在字符串中第一次出现的位置” 你的朋友正在使用 indexOf() 遍历 string1 中的每个字符以查找 string2 中的现有字符。在任何时候找不到字符时,它都会返回 false 并跳出 while 循环。
【讨论】:
非常感谢! 哦,好的;抱歉,我还是新手。 谢谢你。太好了,它对你有用以上是关于代码背后的逻辑确定两个 javascript 字符串是不是是字谜的主要内容,如果未能解决你的问题,请参考以下文章