// 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.

10-07 23:27