taa*_*bma 1 javascript loops while-loop
这是用于评估两个字符串的长度和字符是否相等的正确代码.
function equal(x, y) {
if(x.length != y.length)
return false
var i = 0;
while(i < x.length) {
if(x.charAt(i) != y.charAt(i))
return false
i++
}
return true
}
equal("hello", "hello") // true
equal("hello", "heyyy") // false
Run Code Online (Sandbox Code Playgroud)
我自己修改了它,我认为这对我来说是合乎逻辑的.但是我的代码(如下所示)在其角色内容不同时返回true.任何人都可以帮我解决我的版本有什么问题吗?
function equal(x, y) {
if(x.length != y.length)
return false
var i = 0;
while(i < x.length) {
if(x.charAt(i) != y.charAt(i))
return false
else return true
i++
}
}
equal("hello", "hi") //false
equal("hello", "heyyy") //true
Run Code Online (Sandbox Code Playgroud)
这是因为你在循环的第一次迭代中返回true:
if(x.charAt(i) != y.charAt(i))
return false
else return true
Run Code Online (Sandbox Code Playgroud)
您需要在函数结束时返回true:
function equal(x, y){
if(x.length != y.length)
return false
var i = 0;
while(i < x.length){
if(x.charAt(i) != y.charAt(i))
return false
i++
}
return true
}
Run Code Online (Sandbox Code Playgroud)
还有个人,我会在for循环中这样做:)
你也可能遇到问题,因为事情不受限制.这是一个演示,显示当长度不一致时会发生什么.谢天谢地,你做了一个长度检查,所以这应该不是问题.