使用javascript替换数组中的连续性整数

时间:2015-10-26 12:47:20

标签: javascript

我想在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]

知道如何解决这个问题吗?

1 个答案:

答案 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

玩的小提琴