该练习是关于确定数组中的所有元素是否相同,如果相同则返回true,否则返回false。下面是代码和编写代码的背后逻辑。
function isUniform(array){
for(var i = array.length - 1; i>=0; i--){
if(array[i] !== array[i-1]){
return false;
}
}
return true;
}
基本上我想从数组的最后一个元素开始,并检查它是否与倒数第二个元素相等。如果它们相等,则循环将从“ i”变量中减去1,然后“ if语句”将再次运行。当我达到-1时,循环将停止,这就是检查每个数组元素并且循环应结束的点,返回true。我在做什么/想错了吗?
谢谢!
答案 0 :(得分:4)
当i
变为0时,您正在将arr[0]
与arr[-1]
进行比较,这是错误的。您的检查条件应为i > 0
。
答案 1 :(得分:2)
最后一次运行时,i为0,因此您正在比较array [0]与array [-1],这是不正确的。您的布尔条件应为i> 0,这样可以避免出现此问题:
function isUniform(array){
for(var i = array.length - 1; i > 0; i--){
if(array[i] !== array[i-1]){
return false;
}
}
return true;
}
答案 2 :(得分:1)
您可以使用every
方法来简化solution
。
const allEqual = arr => arr.every(x => arr[0] == x));
答案 3 :(得分:1)
您可以创建一个方法,使用const RootNavigator = createStackNavigator(
{
App,
YourModal,
},
{
headerMode: 'none',
mode: 'modal',
transparentCard: true,
},
);
检查数组中的输入内容。
ArrayUtils
旅行因此无法调试,但是public boolean contains(final int[] array, final int key) {
return ArrayUtils.contains(array, key);
}
的最后一次迭代在您的代码中为0,然后停止。