Hola furoya
Lo del condicional no es tan complicado, el truco es añadir es otra condicional
en el resultado negativo, asi podrias añadir todas las comparaciones que veas necesaria.
expresion_comparacion ? verdad:expresion_ comparacion ? verdad: expresion_comparativa? verdad : mentira
a = a >= this.length ? this.length - 1 : a < 0 ? 0: a
b = b >= this.length ? this.length - 1 : b < 0 ? 0: b
En esta expresion solo compruebo que los argumento no sean mayor que la longitud del array - 1 o inferior a 0
a = es mayor o igual que la longitud del array ? si es verdad ( this.length -1) : es mentira
comprabamos que el valor no sea menor de cero ? es verdad (0): es mentira mantenemos el valor original de (a)
Como ves parece más de lo que es.