export function deepCopy(target) { if (typeof target === 'object') { const result = Array.isArray(target) ? [] : {} for (const key in target) { if (typeof target[key] === 'object') { result[key] = deepCopy(target[key]) } else { result[key] = target[key] } } return result } return target } export function swap(arr, i, j) { console.log('before:' + i + '-->' + j + JSON.stringify(arr)) const temp = arr[i] arr[i] = arr[j] arr[j] = temp console.log('after:' + JSON.stringify(arr)) } export function moveUp(arr, i) { arr.splice(i + 1, 0, arr.splice(i, 1)[0]) } export function moveDown(arr, i) { arr.splice(i, 0, arr.splice(i - 1, 1)[0]) } export function toTop(arr, i, j) { arr.push(arr.splice(i, 1)[0]) } export function toBottom(arr, i) { arr.unshift(arr.splice(i, 1)[0]) } export function $(selector) { return document.querySelector(selector) }