Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 键入脚本检查“是否”;任何n个连续元素都是相同的“;以M大小数组为单位_Javascript_Arrays_Linq_Typescript_Linq.js - Fatal编程技术网

Javascript 键入脚本检查“是否”;任何n个连续元素都是相同的“;以M大小数组为单位

Javascript 键入脚本检查“是否”;任何n个连续元素都是相同的“;以M大小数组为单位,javascript,arrays,linq,typescript,linq.js,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} 我怎样才能做到这一点 另外,我还使用Linq.JS在数组上执行Linq函数。您可以执行以下操作 var arr=[1,2,3,4,5,5,5,2,6,3,3,1], 结果=arr.reduce((p,c,i,a)=>c!==a[i+1]?(p[p.length

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

例如,假设我在数组下面,我想检查是否存在四个连续的“5”或两个连续的“3”:

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

我怎样才能做到这一点


另外,我还使用Linq.JS在数组上执行Linq函数。

您可以执行以下操作

var arr=[1,2,3,4,5,5,5,2,6,3,3,1],
结果=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]]
.切片(0,-1);

控制台日志(结果)您可以执行以下操作

var arr=[1,2,3,4,5,5,5,2,6,3,3,1],
结果=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]]
.切片(0,-1);

控制台日志(结果)这是一个典型的reduce作业。@Redu。。使用外部计数器减少?没有外部计数器。。。一旦有时间,我会尽量不发布答案。这是一项典型的减少工作量的工作。@Redu。。使用外部计数器减少?没有外部计数器。。。一旦我有时间,我将尝试发布一个答案。它给了我一些其他的东西。@Pratik Gaikwad它给你一个数组,每个项目的连续重复计数。随意映射。如果要缓存以前的值,
p[p.length-1][0]
操作可能会很耗时,如果数组的大小为数千。为了简洁起见,它给了我一些其他的东西。@Pratik Gaikwad它给了你一个数组,每个项目都有连续的重复计数。随意映射。如果要缓存以前的值,
p[p.length-1][0]
操作可能会很耗时,如果数组的大小为数千。简明扼要。