javascript - JavaScript Array:如何获取与“true”值的环绕序列相邻的“false”值的索引?
问题描述
给定一个 JavaScript 数组:
- 长度未知大于 0,
- 仅包含布尔值,
- 包含未知数量的
true
和false
值,其中 true
值总是出现在一个连续的集合中,但是- 连续的
true
值集可以“环绕”数组,并且 true
数组中总是至少有一个
如何编写一个 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 中构建逻辑。
解决方案
使用下面的函数来获取 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]
}
推荐阅读
- android - Android Studio 错误:构建扫描未发布
- html - 在 HTML 网站项目中调用外部 MVC 视图
- angular - Angular 5 firebase 不工作
- c# - Drools 不会向我的 c# 桌面应用程序返回任何结果
- uwp - 如何设置 InkCanvas 笔颜色的笔触不透明度?
- ember.js - 将 ember 应用程序升级到 3.0 意外令牌 <<
- keras - Keras 连接卷积层:每个卷积层所需的数据格式
- python-3.5 - 在帮助文档中显示 @property 数据描述符的类型提示
- html - 如何在文件名而不是 URL 中编码正斜杠 (/)?
- python - 我正在尝试通过在 Python 中组合 3 个列表来制作 3D 点列表