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