npm i re-array-order
return a deeply cloned array
import { reorder } from 're-array-order'
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
reorder(arr, { from: 0, to: 9 }) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
reorder(arr, { from: 7, to: 3 }) // [0, 1, 2, 7, 4, 5, 6, 3, 8, 9]
throw error if from
or to
is invalid
import { reorder } from 're-array-order'
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
reorder(arr, { from: 10, to: 0 }) // from out of range
reorder(arr, { from: 0, to: 10 }) // to out of range
reorder(arr, { from: 1, to: -1 as number }) // to smaller than 0
reorder(arr, { from: -1 as number, to: 1 }) // from smaller than 0
reorder(arr, { from: 1, to: 1.34 as number }) // to is not an integer
reorder(arr, { from: 0.237 as number, to: 1 }) // from is not an integer
reorder([], { from: 0 as number, to: 0 }) // empty array
Typescript will stop you from using fresh negative number and fresh decimal number.
fresh
refer to value that is not attached to any variable.
number
is a valid type.
import { reorder } from 're-array-order'
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
reorder(arr, {
// @ts-expect-error
from: -1,
// @ts-expect-error
to: -9,
})
reorder(arr, {
// @ts-expect-error
from: 1.4233,
// @ts-expect-error
to: 8.82738,
})
reorder(arr, {
// @ts-expect-error
from: -1.4233,
// @ts-expect-error
to: -8.82738,
})