@extra-array/slice-update
Version:
Gets a part of array.
19 lines (18 loc) • 464 B
JavaScript
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 slice$(x, i = 0, I = x.length) {
x.copyWithin(0, i, I);
x.length = size(x, i, I);
return x;
}
export { slice$ as default };