Javascript函数没有返回false

时间:2017-04-18 10:18:17

标签: javascript

此功能仅返回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;
}

2 个答案:

答案 0 :(得分:9)

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

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

使用的Array#forEach始终返回undefined

  

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

答案 1 :(得分:0)

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

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;
}