我想在javascript中排序和替换连续整数。
var arrayvals = [1,2,3,10,4,6,12,9];
arrayvals.sort(function(a, b) {
return a - b;
});我想这样打印:[1-4,6,9-10,12]
知道怎么解决这个问题吗?
发布于 2015-10-26 12:57:38
在对数组进行排序之后,只需循环检查数组的连续性。例如:
var arrayvals = [1,2,3,4,6,9,10,12];
var output = [];
for(var i=0; i<arrayvals.length; i++){
var min = arrayvals[i];
var cur = arrayvals[i];
while(cur + 1 === arrayvals[i + 1]){
cur = arrayvals[i + 1];
i++;
}
if(cur !== min){
output.push(min + '-' + cur);
}else{
output.push(cur);
}
}
console.log(output.join(','));这至少假设在处理数组中有几个,但是您应该有大致的想法。我创造了一个小提琴你可以玩这里
https://stackoverflow.com/questions/33346150
复制相似问题