Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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数组_Javascript - Fatal编程技术网

将数据排序到范围的JavaScript数组

将数据排序到范围的JavaScript数组,javascript,Javascript,我有一个数据数组,例如var arr=[1,2,3,4,5,7,8,10,11,12,15]。 若数据编号序列的数组与范围匹配,如两位以上。我想显示上面的数据数组,如下所示。 result=[1-5,7,8,10-12,15] 有谁能帮助我如何在JavaScript中实现上述结果。一种方法 函数getRanges(数组){ 让范围=[],rstart,rend; for(设i=0;i

我有一个数据数组,例如var arr=[1,2,3,4,5,7,8,10,11,12,15]。 若数据编号序列的数组与范围匹配,如两位以上。我想显示上面的数据数组,如下所示。
result=[1-5,7,8,10-12,15]

有谁能帮助我如何在JavaScript中实现上述结果。

一种方法

函数getRanges(数组){ 让范围=[],rstart,rend; for(设i=0;i控制台日志(范围3)您可以检查数字是否在范围内,更改最后一个字符串或将值推送到结果集

var数组=[1,2,3,4,5,7,8,10,11,12,15],
结果=[];
forEach(函数(a,i,aa){
结果.推送(aa[i-1]+1==a&&(aa[i-2]+1==aa[i-1]|a+1==aa[i+1])
?[result.pop().split('-')[0],a].join('-'))
:a.toString());
});
控制台日志(结果)

作为控制台包装{max height:100%!important;top:0;}
您尝试了什么?您将如何手动解决此问题?因此,您将从数组中的整数值转换为字符串值?数字数组中不能包含
-
,是否有任何方法可以实现此目的?输出将是数组或字符串对象。这句话很难理解。“如果数据编号序列的数组与两位数以上的范围匹配”。请澄清。感谢您提供的解决方案。它帮助我从第一个示例中的问题中进行了分类。在第一个示例中,7和8不应该在一起。
1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 15
^                                    no predecessor, push value
+  ^  +                              predecessor and successor, change last value
      +  +  ^                        predecessor and previous predecessor, change last