用"for"和"ForEach"循环遍历数组的javascript

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)

Ray*_*oal 6

return第二个例子中的"内部" 是从传递给函数的返回forEach.它并不会导致从立即返回isUniform功能.相反,您传递的这个小匿名函数forEach很快就会为数组的每个元素运行完成.

在完成所有元素的运行后,您的isUniform函数将返回true.