44 lines
930 B
JavaScript
44 lines
930 B
JavaScript
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)
|
|
}
|