美文网首页
取连续数字

取连续数字

作者: 奋斗的小小小兔子 | 来源:发表于2019-07-23 10:46 被阅读0次

需求是取输入数据中的连续数字,将连续数字使用连接符~连接首尾数字

输入:1,2,3, 5, 6, 9, 12, 13, 14
输出: 1 ~ 3, 5 ~ 6, 9, 12 ~ 14

window.onload = function () {
    let input = [1,2,3, 5, 6, 9, 12, 13, 14]
    let output = continuousNum(input);
    console.log('output', output);
  }

  const continuousNum = (arr) => {
    let res = [];
    let str ='';
    let i = 0;
    res[i] = [arr[i]];
    arr.reduce((pre, cur) => {
      if (cur - pre === 1) {
        res[i].push(cur);
      } else {
        i++;
        res[i] = [cur];
      }
      return cur;
    })
    res.forEach(itm => {
      let len = itm.length;
      if ( len > 1) {
        str +=`${itm[0]}~${itm[len-1]},`;
      } else {
        str += `${itm[0]},`;
      }
    })
    return str.substring(0, str.length-1);
  }
  


相关文章

  • 取连续数字

    需求是取输入数据中的连续数字,将连续数字使用连接符~连接首尾数字 输入:1,2,3, 5, 6, 9, 12, 1...

  • Leetcode.198.House Robber

    题目 给定一个数组, 不能取连续两个相邻的数字, 求最大可以取多少数字. 思路 DP, 对于第一个数字, 如果取第...

  • 降序输出并且连续数字之间只输出最大值和最小值

    题目:将数组进行降序,数组中不会出现重复数字,连续数字间,只取最大值和最小值。例如:[4, 7, 2, 1, 5,...

  • python:numpy的索引和切片(1)

    首先导入numpy 1、行操作-- 1)取单行 -- 2)取多行—取连续多行 -- 3)取多行—取不连续多行 2、...

  • Scanner类读取数字后读取字符串

    使用Scanner类数取数字后再读取字符串,需要连续两次nextLine(),一次是为了读取前一步读取数字时缓冲区...

  • Remove Boxes

    题目来源一个数组,里面不同的数字,然后每次取连续的k个同样数字,得分k*k,然后问怎么取得分最高。没想到怎么用DP...

  • 你工作中最实用函数

    一、数字处理 1、取绝对值 =ABS(数字) 2、取整 =INT(数字) 3、四舍五入 =ROUND(数字,小数位...

  • A15 基本的常用函数

    一.数字处理 1.取绝对值 =ABS(数字) 2.取整 =INT(数字) 3.四舍五入 =ROUND(数字,小数位...

  • 数字取整

    向上取整: Math.ceil(); 向下取整: Math.floor() | parseInt() | num...

  • 连续出现的数字

    题目中求连续出现三次的数字,不容易想到的如果用sql语句限制连续,因为sql语句不是普通的编程语言,它面向集合。 ...

网友评论

      本文标题:取连续数字

      本文链接:https://www.haomeiwen.com/subject/knxolctx.html