Nav*_*zan 0 javascript arrays foreach for-loop
我正在尝试创建一个以数组作为参数的函数,并且仅当数组中的所有项都相同时才返回"true".
我尝试使用for循环,我尝试使用forEeach循环
,第一个工作很棒.
第二个不是!
为什么?
这是我的第一个代码:
function isUniform(ary) {
var first = ary[0];
for (i = 0; i < ary.length; i++) {
if (first !== ary[i]) {
return false;
}
}
return true;
}
console.log(isUniform([1, 2, 1]));
Run Code Online (Sandbox Code Playgroud)
这是我的第二个:
function isUniform(ary) {
var first = ary[0];
ary.forEach(function(element) {
if (first !== element) {
return false;
}
});
return true;
}
console.log(isUniform([1, 2, 1]));
Run Code Online (Sandbox Code Playgroud)
return第二个例子中的"内部" 是从传递给函数的返回forEach.它并不会导致从立即返回isUniform功能.相反,您传递的这个小匿名函数forEach很快就会为数组的每个元素运行完成.
在完成所有元素的运行后,您的isUniform函数将返回true.