繁体   English   中英

JavaScript函数不返回false

[英]Javascript function not returning false

该函数仅返回true。 我在if块中添加了console.log,它被调用了,但是函数没有返回false。

function isUniform(List)
{
    var ele = List[0];
    List.forEach(function(item)
    {
        console.log(ele);
        if(ele !== item)
        {
            return false;
        }
    })
    return true;
}

您需要另一种测试统一性的方法。 最好使用Array#every ,它检查数组的第一项中的每个值,如果所有元素相等,则返回true ,否则返回false 迭代从第一个不相等元素停止。

function isUniform(list) {
    return list.every(function(item, _, array) {
        return item === array[0];
    });
}

使用的Array#forEach返回始终为undefined

forEach()对每个数组元素执行一次回调函数; map()reduce()它始终返回undefined的值并且不可链接。

我认为您可以使用此代码;

function isUniform(List)
{
    var res = true;
    var ele = List[0];
    List.forEach(function(item)
    {
        console.log(ele);
        if(ele !== item)
        {
            res = false;
            return;
        }
    })
    return res;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM