[英]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.