我想在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]
知道如何解决这个问题吗?
答案 0 :(得分:2)
对数组进行排序后,只需遍历它就可以检查连续性。例如:
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(','));
这假定处理数组中至少有一对,但你应该得到一般的想法。我创造了一个可以用here
玩的小提琴