Skip to content

Instantly share code, notes, and snippets.

@AaronFlower
Created December 22, 2017 17:48
Show Gist options
  • Select an option

  • Save AaronFlower/4d0ef8b8cce44c60f8bce28b14299249 to your computer and use it in GitHub Desktop.

Select an option

Save AaronFlower/4d0ef8b8cce44c60f8bce28b14299249 to your computer and use it in GitHub Desktop.
left-mid-right array
/* [left], mid [right] */
function leftMidRight () {
this.currentDim = this.dimsMap.get(val)
this.leftArr = []
this.rightArr = []
for (let i = val - 1; i >= val - this.halfSize; --i) {
if (i >= 0) {
this.leftArr.unshift(i)
} else {
break
}
}
for (let i = val + 1; i <= val + this.halfSize; ++i) {
if (i < this.maxIndex) {
this.rightArr.push(i)
} else {
break
}
}
if (this.leftArr.length === this.halfSize && this.rightArr.length === this.halfSize) {
} else if (this.leftArr.length < this.halfSize) {
let missed = this.halfSize - this.leftArr.length
let maxRight = this.rightArr[this.rightArr.length - 1]
for (let i = 1; i <= missed; i++) {
this.rightArr.push(maxRight + i)
}
} else {
let missed = this.halfSize - this.rightArr.length
let minLeft = this.leftArr[0]
for (let i = 1; i <= missed; i++) {
this.leftArr.unshift(minLeft - i)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment