1. 原數組 去重 正序排列
2.遞歸 獲取等差值
3.等差值 去重?
4.判斷等差值(去重後數組長度分3種情況 0:相同數子, 1:順序或逆序 ,其他:正確)
let arr = [9,1,7,6,5,4]
class verifications {
constructor() {
this.val = []
}
// 正序排列 去重
_init(val) {
this.val = this.DuplicateRemoval(val.sort(function (a,b) {
return a - b;
}))
}
handle(val) {
this._init(val)
let newVal = this.DuplicateRemoval(this._filters(this.val))
if (newVal.length !== 0 && newVal.length !== 1) {
return true
}else {
return false
}
}
// 遞歸處理等差數列
_filters(val,newVal = [],index = 0) {
if (index <= val.length - 2) {
newVal.push(val[index + 1]- val[index])
index++
this._filters(val,newVal,index)
}
return newVal
}
// 去重
DuplicateRemoval(val) {
return Array.from(new Set(val))
}
}
let p = new verifications()
console.log(p.handle(arr))