如何验证数组成员是否“连续”?
例如,Array[1,3,4,5,6]不是一个连续数组,因为它缺少数字2,这将完成递增的顺序序列。哪些JavaScript数组方法可以成为这种验证的好候选者?
我尝试过JavaScript数组方法,例如“. map”、“.每一个”、“.一些”,但没有成功。
let values = [1,3,4,5,6];
let result1 = values.map(x => x > 5);
console.log('value of result1 : ', result1);
Result: "value of result1 : ", [false, false, false, false, true]
let result2 = values.some(x => x > 5);
console.log('value of result2 : ', result2);
Result: "value of result2 : ", true
let result5 = values.every(x => x > 4);
console.log('value of result5 : ', result5);
Result: "value of result5 : ", false
谢谢…
使用函数all with of as代码:
values.every((num, i) => i === values.length - 1 || num === values[i + 1] -1 )
let values = [1,3,4,5,6];
console.log(values.every((num, i) => i === values.length - 1 || num === values[i + 1] -1 ));
这应该快速且易于理解:
const isConsecutive = (array) => {
for (let i = 1; i < array.length; i++) {
if (array[i] !== array[i - 1] + 1) {
return false
}
}
return true
}
我们从索引1开始,将当前元素与前一个元素进行比较。
一个简单的循环也可以提供帮助。
function continuos(arr) {
let prev = arr[0];
for (var i = 1; i < arr.length - 1; i++) {
if (prev + 1 !== arr[i]) return false;
prev = arr[i];
}
return true;
}
let values = [1, 3, 4, 5, 6];
console.log(continuos(values));