今天状态是真滴差,这个方法让我懵了半天,脑袋被浆糊装满了.
第一次错误的写法如下:
function arrayequals(a,b) {
if(a.length !== b.length) {
return false
}
for (var i=0;i<a.length;i++){
if (a[i] !== b[i]) {
return false
} else {
return true;
}
}
}
演示实例`
var a = [1,1];
var b = [1,11];
alert(arrayequals(a,b));
不知道朋友们发现了没有,反正我当时写完是没有发现,等我发现了这个问题,我想撞死在豆腐上.
原因: for循环中遍历数组,第一次判断下标为 0位置处的数字, 数组a,b中的当前数字均为 1,所以是相等的,就直接返回true了,后面的内容就不进行判断了.
下面为正确的写法:
function arrayequals(a,b) {
if(a.length !== b.length) {
return false
}
for (var i=0;i<a.length;i++){
if (a[i] !== b[i]) {
return false
}
}
return true;
}
蓝搜,不说了,我想静静.