this.mouse = { clientX: e.clientX, clientY: e.clientY }
let l = r.pop();
l.push(v);
r.push(l);
`${v.shift()}-${v.pop()}`
const last = arr => arr[arr.length - 1];
const range = list => list
.sort((a,b) => a - b)
.reduce((r, v, i, a) => (i > 0 && v - a[i - 1] === 1 && last(r).push(v) || r.push([v])) && r, [])
.map(v => v.length > 1 ? `${v[0]}-${last(v)}` : v)
.toString()
так сбивают же такие посты, хочется доверять, так считается, что это мнение специалистов