javascript - 使用 forLoop() 在数组中查找唯一编号
问题描述
我正在尝试 Javascript 练习并遇到了问题。我已经构建了一个函数来查找数组是否由相同的数字组成。如果有任何唯一编号,则返回 false。
这是我想出的,我不明白为什么它不起作用。
function isUniform(arr){
for (var i = 0; i < arr.length; i++) {
if (arr[i-1] !== arr[i]); {
return false;
}
}
return true;
}
为什么这不起作用?这里有什么问题?我是一个完整的菜鸟!
谢谢大师!
解决方案
第一次迭代将始终return false
(除非数组的第一个元素未定义),因为当i
从 0 开始时,
if (arr[i-1] !== arr[i])
将永远决心
if (false)
因为arr[i-1]
解决arr[-1]
,几乎可以肯定undefined
。数组是零索引的,而不是-1
索引的。如果您想使用for
循环,请i = 1
改为:
function isUniform(arr){
for (var i = 1; i < arr.length; i++) {
if (arr[i-1] !== arr[i]) {
return false;
}
}
return true;
}
console.log(isUniform([1, 1, 1]));
console.log(isUniform([1, 1, 2]));
或者您可以避免循环并every
改用:
function isUniform(arr){
const [first] = arr;
return arr.every(item => item === first);
}
console.log(isUniform([1, 1, 1]));
console.log(isUniform([1, 1, 2]));
推荐阅读
- flutter - 如何在颤动中向圆形容器添加线性渐变?
- algorithm - 选择足球队球员的组合优化
- .net-core - 在 Blazor WASM 中测试的代码(让它不慢)
- java - 这个 java:S3077 我有什么错吗?
- javascript - 如何将类添加到单击的按钮并将类删除到先前单击的按钮
- html - 我可以像这样上传我的网站文件夹(主文件夹内的嵌套文件夹)吗?
- lua - 如何在 Logitech ghub 内的 LUA 脚本中创建 Auto Clicker 宏?
- java - 使用适配器和数组列表时,我需要在回收视图中的项目上实现单击侦听器类
- javascript - npm ERR 此运行的完整日志可以在
- reactjs - Apollo Client 3.0 或 Redux 用于本地状态管理?