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