不是从头开始查找下一个数组索引,如果没有从头开始查找循环

塔达斯五世
const arr = [{item:'a', value:false}, {item:'b', value:true}, {item:'c', value:true}, {item:'d', value:false}];
const startIndex = 2;

给定startIndex在数组中找到值= 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);
妮娜·斯科茨(Nina Scholz)

您可以采用一个循环,将其startIndex作为偏移量,然后将余数与长度整形。

const
    array = [{ item: 'a', value: false }, { item: 'b', value: true }, { item: 'c', value: true }, { item: 'd', value: false }],
    startIndex = 3;
    
let result;

for (let i = startIndex; i < array.length + startIndex; i++) {
    console.log(i, i % array.length);
    if (array[i % array.length].value) {
        result = array[i % array.length];
        break;
    }
}

console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章