打字稿检查M尺寸数组中“任意n个连续元素是否相同”

时间:2016-09-18 19:24:28

标签: javascript arrays linq typescript linq.js

我有一个字符串数组或大小为M的数字(M> n)。我想检查n个连续元素是否相同,其中n可以在1-M之间变化。

例如,假设我在数组之下,我想检查是否有四个连续的'5'或两个连续'3'存在或不存在:

{1,2,3,4,5,5,5,5,2,6,3,3,1}

我怎样才能做到这一点?

P.S。我也在使用Linq.JS在数组上执行linq函数。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作



var arr = [1,2,3,4,5,5,5,5,2,6,3,3,1],
 result = arr.reduce((p,c,i,a) => c !== a[i+1] ? (p[p.length-1][0] = c, p.concat([[0,1]]))
                                               : (p[p.length-1][0] = c, p[p.length-1][1]++, p),[[true,1]])
             .slice(0,-1);
console.log(result);