export const replace = (arr, index, value) => [ ...arr.slice(0, index), value, ...arr.slice(index + 1) ] export const insert = (arr, index, value) => [ ...arr.slice(0, index), value, ...arr.slice(index) ] export const remove = (arr, index) => [ ...arr.slice(0, index), ...arr.slice(index + 1) ] export const shiftUp = (arr, index) => [ ...arr.slice(0, index - 1), arr[index], ...arr.slice(index - 1, index), ...arr.slice(index + 1) ] export const shiftDown = (arr, index) => [ ...arr.slice(0, index), ...arr.slice(index + 1, index + 2), arr[index], ...arr.slice(index + 2) ] export const interleave = (arr, sep) => arr.reduce((arr, value) => { if (arr.length) arr.push(sep) arr.push(value) return arr }, [])