首页 > 解决方案 > JavaScript Array:如何获取与“true”值的环绕序列相邻的“false”值的索引?

问题描述

给定一个 JavaScript 数组:

如何编写一个 JavaScript 函数来返回与false完整值集立即“相邻”的两个值的索引(以任何顺序)true

考虑以下示例,其中胡萝卜 (^) 表示我希望返回的索引:

[true, true, false, false, false, true];
               ^             ^

[false, false, true, true, true, false, false]
          ^                        ^

[true, true, true, false, false, false, false, false]
                     ^                           ^

[false, false, false, true, true]
   ^             ^

[true, false, false, false, false]
         ^                    ^

[false, false, true, false, false, false]
          ^            ^

除了上面的可视化示例之外,我一直无法在 JavaScript 中构建逻辑。

标签: javascriptarrays

解决方案


使用下面的函数来获取 false 的开始和结束

function getIndexes(arr) {
  var a = arr.indexOf(true);
  var start;
  var end;
  if(a==0)
  {
    start=arr.indexOf(false);
    var temp=arr.indexOf(true,start);
    if(temp==-1){
    end=arr.length-1;
    }
    else{
    end=temp-1;
    }
  }
  else{
    start=a-1;
    var temp=arr.indexOf(false,a);
    if(temp==-1){
    start=0
    end=a-1
    }
    else{
    end=temp
    }
    }
  return [start,end]
}


推荐阅读