小吴,第二题的算法有错哦,只考虑了最简单的情况,只有一个连续串的情况。个人觉得前一半代码没问题,后面那段if块要修改一下😃 ``` let arr = [3, 4, 5, 7, 8, 9, 10]; function getRes(arr) { let res = []; let temp = []; for (let i = 0; i < arr.length; i++) { if (arr[i] + 1 == arr[i + 1]) { temp.push(arr[i]); temp.push(arr[i + 1]) } else { res.push([...temp]); temp.length = 0; } } res = res.map(serie => [...new Set(serie)]); res.forEach(serie => { if (serie.length >= 3) { let i = arr.indexOf(serie[0]); let j = arr.indexOf(serie[serie.length - 1]); let tmp = ""; tmp = serie[0] + "-" + serie[serie.length - 1]; arr.splice(i, j - i + 1, tmp);//将原数组中的数字用转换过后的格式替换掉 } }); return arr; } console.log(getRes(arr).join(",")); ```
点赞 评论

相关推荐

不愿透露姓名的神秘牛友
10-15 14:22
点赞 评论 收藏
分享
我见java多妩媚:大外包
点赞 评论 收藏
分享
牛客网
牛客企业服务