js怎么判断一组数字是连值?

比如[1,2,3],[9,0,1],这样的连值组合?连值是指12345678901234567890这样的数字相连的组合,像[1,2,3,4,5]是连值,但[1,3,4,5,6]不是,因为没有相连。
注:9和0相连
比如随便给你一组数,如果满足连值,则返回true。

阅读 4.5k
3 个回答
function isContinuousArr (arr) {
    return arr.every((item, index) => index === 0 || item === (arr[index-1] + 1) % 10)
}

前提条件,3个数,都是数字
假如不需要首尾相连,则判断每个数的前一位和后一位+1 -1 等于自己就行。遇0作特殊判断,首位、末位不判断前一位和后一位。
这样满足楼主的需求吗?

function check(arr) {
    if (!(arr instanceof Array) || arr.length <= 1) return false;
    for (var i = 1, len = arr.length; i < len; i++) {
        if (((+arr[i - 1] + 1) % 10) !== +arr[i]) return false;
    }
    return true;
}

console.log(check([1, 2, 3]), check([1, 2, 3, 4, 5]), check([9, 0, 1]), check([1,3,4,5,6]))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题