我正在尝试比较两个字符串的相等性,并返回不同地方的任何不同字母的数量,如果有任何例如 bob 和购买将返回2.
我没有在其他地方找到任何其他的例子,所以我试图自己编写代码。我的下面的代码没有返回任何不确定它有什么问题?任何想法都赞赏。
由于
function equal(str1, str2) {
/*If the lengths are not equal, there is no point comparing each character.*/
if (str1.length != str2.length) {
return false;
}
/*loop here to go through each position and check if both strings are equal.*/
var numDiffChar = 0;
var index = 0;
while (index < str1.length) {
if (str1.charAt(index) !== str2.charAt(index)) {
numDiffChar += index;
index++;
} else {
index++;
}
}
};
equal("javascript", "JavaScript");
答案 0 :(得分:0)
numDiffChar += index;
每次增加numDiffChar不会增加1,但值index
。我猜你想做什么
numDiffChar++;
答案 1 :(得分:0)
除了Simon的答案,你还没有返回numDiffChar
的值。此外,您始终希望增加index
,因此我会将其放在if
语句之外。如果字符串相等,你可以提前保释。建议:
function equal(str1, str2) {
/* If the strings are equal, bail */
if (str1 === str2) {
return 0;
}
/*If the lengths are not equal, there is no point comparing each character.*/
if (str1.length != str2.length) {
return false;
}
/*loop here to go through each position and check if both strings are equal.*/
var numDiffChar = 0;
var index = 0;
while (index < str1.length) {
if (str1.charAt(index) !== str2.charAt(index)) {
numDiffChar++;
}
index++;
}
return numDiffChar;
};
答案 2 :(得分:0)
function equal(str1,str2){
/*If the lengths are not equal, there is no point comparing each character.*/
if (str1.length != str2.length) {
return false;
}
/*loop here to go through each position and check if both strings are equal.*/
else
{
var numDiffChar = 0;
var index = 0;
while (index < str1.length) {
if (str1.charAt(index) !== str2.charAt(index)) {
numDiffChar += index;
index++;
} else {
index++;
}
}
}
};
相等(“javascript”,“JavaScript”);