UNPKG

@extra-array/copy-within.min

Version:
21 lines (20 loc) 577 B
function index(x, i = 0) { return i < 0 ? Math.max(x.length + i, 0) : Math.min(i, x.length); } function indexRange(x, i = 0, I = x.length) { i = index(x, i); I = Math.max(i, index(x, I)); return [i, I]; } function size(x, i = 0, I = x.length) { var [i, I] = indexRange(x, i, I); return I - i; } function copyWithin(x, j = 0, i = 0, I = x.length) { var I = i + Math.min(size(x, i, I), size(x, j)); var p = x.slice(0, j); var q = x.slice(i, I); var r = x.slice(j + q.length); return p.concat(q, r); } export { copyWithin as default };