题目
Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"].
大致意思
给定一个数组,把他们之前连续的数字进行合并
解决方案
- 进行遍历整个数组
 - 根据三个数值进行比较,
start pre data - 一开始的时候,将数组的第一个元素赋给
start 和 pre 
var start = nums[0];
var pre = start;
我们在循环遍历的时候,根据
data - pre != 1的判断,判断是否整个数据是连续的。- 如果是连续的话,我们持续遍历,将
pre = data - 如果不是连续的话,我们将
start 和 prepush进大数组中去 - 这里我们需要判断,如果
start === pre的话,push一个即可 
- 如果是连续的话,我们持续遍历,将
 
function pushValue(start, pre, array) {
  if (pre === start) {
    array.push([pre])
  } else {
    array.push([start, pre]);
  }
}
- 遍历完所有之后,需要再次进行 
pushValue(start, pre, array); - 最后遍历输出所需要的数据结构
 
var arr = array.map((d) => {
  return d.join('->');
});
源代码
var summaryRanges = function(nums) {
  if (!nums.length) return [];
  var array = [];
  var start = nums[0];
  var pre = start;
  var data;
  for (var i = 1, l = nums.length; i < l; i++) {
    data = nums[i];
    if (data - pre != 1) {
      pushValue(start, pre, array);
      start = data;
    }
    pre = data;
  }
  pushValue(start, pre, array);
  var arr = array.map((d) => {
    return d.join('->');
  });
  return arr;
};
function pushValue(start, pre, array) {
  if (pre === start) {
    array.push([pre])
  } else {
    array.push([start, pre]);
  }
}