我正在尝试验证数字数组是否是增量序列,数字之间没有跳跃。例如:
const items = [1,2,3,4] // Should return true
const items = [1,2,4] // Should return false - jumps from 2 to 4
const items = [5,6,7] // Should return true
数组并不总是从 1 开始,就像上面的例子一样,它从 5 开始返回 true。我如何编写一个函数来验证这一点,以便根据序列是否有跳转返回 true 或 false?
提前致谢。
function isIncrementalSequence(arr) {
if (arr.length <= 1) return true; // Single element or empty array is considered a sequence
for (let i = 1; i < arr.length; i++) {
if (arr[i] !== arr[i - 1] + 1) {
return false; // If there's a jump, return false
}
}
return true; // No jumps found, return true
}
// Test cases
console.log(isIncrementalSequence([1, 2, 3, 4])); // true
console.log(isIncrementalSequence([1, 2, 4])); // false
console.log(isIncrementalSequence([5, 6, 7])); // true
检查每个成员(不包括第一个成员)减去前一个成员是否等于 1 应该适合您。
const items = [1,2,3,4] // Should return true
//2 - 1 = 1, 3 - 2 = 1,...
const items = [1,2,4] // Should return false
//4 - 2 = 2 -> false
const items = [5,6,7] // Should return true
// 6 - 5 = 1,...