思路 话肖,[0,0,0,0,0,0] [1,2,3,4,5,6] [6,5,4,3,2,1] 都是等差數(shù)列 就是判斷是否為等差數(shù)列
1. 原數(shù)組 去重 正序排列
2.遞歸 獲取等差值
3.等差值 去重?
4.判斷等差值(去重后數(shù)組長(zhǎng)度分3種情況 0:相同數(shù)子, 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
? ? ? ? }
}
// 遞歸處理等差數(shù)列
? ? _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))