1.将数组缩减;
- eg:[1, 2, 3, 5, 7, 8, 10, 11, 23, 25]
- 缩减为:['1~3',5,'7~8','10~11',23,25]
- 代码
-
<script> //[1,2,3,5,7,8,10] //['1~3',5,'7~8',10] function getArr (arr) { let newArr = [] // 存储最终结果 let arr2 = [arr[0]] // 存储中间结果 let flag = 0 for (let i = 1; i < arr.length; i++) { if (arr[i - 1] + 1 == arr[i]) { flag = 1 arr2.push(arr[i]) } else { if (flag) { newArr.push(`${arr2[0]}~${arr2[arr2.length - 1]}`) arr2 = [arr[i]] flag = 0 } else { newArr.push(arr2[0]) arr2 = [arr[i]] } } } // 最后一次的值没有加 if (arr2.length > 1) { // 说明最后一次是连续的 newArr.push(`${arr2[0]}~${arr2[arr2.length - 1]}`) } else { newArr.push(arr2[0]) } return newArr } console.log(getArr([1, 2, 3, 5, 7, 8, 10, 11, 23, 25])) </script>