// Write a program to check whether or not two arrays are identical in size, and hold identical values
string1 = prompt("String 1?");
string2 = prompt("String 2?");
compareNum = 0;
for(i=0; i<string1.length; i++)
{
for(j=i; j<string2.length; j++)
{
if (string1.charAt(i) == string2.charAt(j))
{
compareNum++;
break;
}
}
};
alert("We found " + compareNum + " identical value(s).");
我设法建立了一个相对简单的字符串比较程序,但是现在我遇到的问题是它输出的结果。
例如,如果我输入“ Jeansy”和“ Jeansy”-得到的响应是“我们找到6个相同的值”。
而如果我键入“ Molanza”和“ Molanza”,则会收到“我们找到9个相同的值”的答复。
当然应该只有7吗?
还是“ a”被计算两次?无论如何,我可以否定这个吗?
顺便说一句,我正在考虑所有字符串。
提前致谢!
最佳答案
好吧,您正在比较string1中的每个字母与string2中的每个字母。如果字母重复,您将得到重复的结果。
尝试这个:
string1 = prompt("String 1?");
string2 = prompt("String 2?");
compareNum = 0; // why are you using the Number contructor? Unneeded.
l = Math.min(string1.length, string2.length);
for( i=0; i<l; i++) {
if( string1.charAt(i) == string2.charAt(i)) compareNum++;
}
// do something with compareNum.