|
|
@ -1,65 +0,0 @@
|
|
|
|
<template>
|
|
|
|
|
|
|
|
<div>
|
|
|
|
|
|
|
|
{{arr1}} -> {{constrict(arr1)}}<br>
|
|
|
|
|
|
|
|
{{arr2}}->{{seg(arr2,4)}}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
|
|
|
name: "tool",
|
|
|
|
|
|
|
|
data(){
|
|
|
|
|
|
|
|
return{
|
|
|
|
|
|
|
|
arr1:[1,2,3,4,5,6,7,8,9,10,11,12,13],
|
|
|
|
|
|
|
|
arr2:[1,2,3,4,6,7,8,10]
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
methods:{
|
|
|
|
|
|
|
|
//收缩数组,要求:数组为已排序数组
|
|
|
|
|
|
|
|
constrict(arr){
|
|
|
|
|
|
|
|
arr=[...new Set(arr)] //去重
|
|
|
|
|
|
|
|
console.log(arr)
|
|
|
|
|
|
|
|
var min=arr[0]
|
|
|
|
|
|
|
|
var max
|
|
|
|
|
|
|
|
var newArr=[]
|
|
|
|
|
|
|
|
for (let i=0;i<arr.length-1;i++){
|
|
|
|
|
|
|
|
max=arr[i]===arr[i+1]-1?arr[i+1]:arr[i]
|
|
|
|
|
|
|
|
if (max===arr[i] ||max===arr[arr.length-1]){
|
|
|
|
|
|
|
|
newArr.push(min===max?max:min+'-'+max)
|
|
|
|
|
|
|
|
min=arr[i+1]
|
|
|
|
|
|
|
|
if (min===arr[arr.length-1] && min-1 !==arr[i]){
|
|
|
|
|
|
|
|
newArr.push(min)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return newArr.toString()
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
//分割,arr为数组,range为分割范围,要求:arr为已排序数组,range为正整数
|
|
|
|
|
|
|
|
seg(arr,range){
|
|
|
|
|
|
|
|
arr=[...new Set(arr)] //去重
|
|
|
|
|
|
|
|
var min=arr[0]
|
|
|
|
|
|
|
|
var max
|
|
|
|
|
|
|
|
var newArr=[]
|
|
|
|
|
|
|
|
for (let i=0;i<arr.length-1;i++){
|
|
|
|
|
|
|
|
max=arr[i]===arr[i+1]-1?arr[i+1]:arr[i]
|
|
|
|
|
|
|
|
if(arr[i]-min===range-1){ //在constrict的基础上加if
|
|
|
|
|
|
|
|
newArr.push(min+'-'+arr[i])
|
|
|
|
|
|
|
|
min=arr[i+1]
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (max===arr[i] ||max===arr[arr.length-1]){
|
|
|
|
|
|
|
|
newArr.push(min===max?max:min+'-'+max)
|
|
|
|
|
|
|
|
min=arr[i+1]
|
|
|
|
|
|
|
|
if (min===arr[arr.length-1] && min-1 !==arr[i]){
|
|
|
|
|
|
|
|
newArr.push(min)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return newArr.toString()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|