javascript - 查找下一个数组索引不是从头开始 AND 如果没有找到则从头开始循环
问题描述
const arr = [{item:'a', value:false}, {item:'b', value:true}, {item:'c', value:true}, {item:'d', value:false}];
const startIndex = 2;
给定 startIndex 在数组中找到 value=true 的下一个对象。迭代必须向前,如果没有找到,从索引 0 开始。应该返回 arr[1];
我刚刚碰壁,似乎找不到迭代方法:/
let result = {};
for (let i = startIndex + 1; i < arr.length; i++) {
if (!arr[i] && i < arr.length) {
result = arr[i];
}
}
console.log(result);
解决方案
我不确定我是否理解。但...
getNext = function(startIndex, arr){
var i;
for(i = startIndex; i < arr.length; i++){
if(arr[i].value){
return arr[i];
}
}
if(startIndex != 0){
return getNext(0, arr);
}
return null;
}
推荐阅读
- apache - Apache2 - apache2.conf - AH00526:语法错误允许和拒绝必须后跟“来自”
- csvtoarray - 将 csv 行文件内容转换为 java 对象数组
- ios - Flutter ios构建失败,android工作
- rest - RESTful API 设计:涉及多个资源的操作
- kubernetes - 如何仅将 Flux helmrelease 部署到 1 个环境
- algorithm - 为什么在 Kruskal 算法的运行时间证明中,最大边数小于节点数的平方?
- node.js - 运行单元测试管道时出现 Github 操作错误
- sql - 从数据库表中获取名称以在 select 语句中使用,而不是 databasename
- sql - 为什么我的存储过程查询返回额外的结果?
- reactjs - 倒数计时器达到 0 在反应状态管理中激活按钮