首页 > 解决方案 > 从数组中获取可能的序列

问题描述

我有一个像这样的数组,

const array = [1,3,4,5,6] // array will have unique values

我想以优化的方式从该数组中获取可能的序列,序列长度应大于 3

示例:我应该得到[[3,4,5,6]]

例子:

[1,2,3,5,8,9,10]=> 输出应该是[[1,2,3],[8,9,10]]

我已经尝试过Array.every,但无法弄清楚序列之间何时中断。

标签: javascriptjqueryarrays

解决方案


const data = [1,2,3,5,8,9,10];
const result = data.reduce((seq, v, i, a) => {
	if (i && a[i - 1] !== v - 1) {
		seq.push([]);
	}
	seq[seq.length - 1].push(v);
	return seq;
}, [[]]).filter(({length}) => length > 1);
console.log(result);


推荐阅读