js 如何获取顺序中断的位置?

问题:
有个数组:arr=[1,2,3,4,5,7,8,11,12]
如何知道是从6开始中断的。
目前想到的方法是:

// 获取顺序中断的位置
let cutIdx = -1
for(let i = 1;i<=arr.length;i++){
  if(arr[i-1] != i){
    cutIdx = i;
    break
  }
}

有没有更好的方法

阅读 1.3k
2 个回答
// => 5
[1,2,3,4,5,7,8,11,12].findIndex((val, idx) => val - 1 !== idx)
var arr = [1,2,3,4,5,7,8,11,12];
var index = arr.findIndex((val, idx) => {
  return idx != 0 && (val - 1) != arr[idx - 1];
});
console.log('index', index);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题