我正在 edabit 上做一些挑战,我遇到了输出问题。所以我必须创建一个函数,它接受一个数组(老虎机结果),如果数组中的所有元素都相同,则返回 true,否则返回 false。该数组将包含 4 个元素。有人可以解释为什么我的代码不能正常工作吗?
我尝试过其他输入,效果很好。
'use strict';
function array_Validator(e1,e2,e3,e4)
{
let m_Array=[e1,e2,e3,e4];
for(let i=0;i<m_Array.length-1;i++)
{
for(let x=i;x<m_Array.length-1;x++)
{
if(m_Array[i]!==m_Array[x+1])
{
return false;
}
else
return true;
}
}
}
let u_Result=array_Validator("SS","SS","Ss","Ss");
console.log(u_Result);
因此,当我输入 Ss 时,它会显示 true 而不是 false。
最佳答案
您需要将 return true
移至函数末尾,并且可以使用单个循环并相互检查第一个元素。
'use strict';
function array_Validator(e1, e2, e3, e4) {
let m_Array = [e1, e2, e3, e4];
for (let i = 1; i < m_Array.length; i++) {
if (m_Array[0] !== m_Array[i]) return false;
}
return true;
}
let u_Result = array_Validator("SS", "SS", "SS", "Ss");
console.log(u_Result);
关于javascript - 函数在迭代中返回 True 而不是 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56385225/