Source: compute/utilities/copy.js

  1. /** @module */
  2. /**
  3. * Try to deepcopy an object.
  4. * @param {object} a - an object to copy.
  5. * @returns {object} A copy of a.
  6. */
  7. export function jcopy(a) {
  8. return JSON.parse(JSON.stringify(a))
  9. }
  10. export function copyArrayShallow(a) {
  11. const n = a.length
  12. const b = Array(n)
  13. for (let i = 0; i < n; i++) {
  14. b[i] = a[i]
  15. }
  16. return b
  17. }
  18. export function copyArrayShallow2(a) {
  19. const n = a.length
  20. const b = Array(n)
  21. for (let i = 0; i < n; i++) {
  22. const m = a[i].length
  23. b[i] = Array(m)
  24. for (let k = 0; k < m; k++) {
  25. b[i][k] = a[i][k]
  26. }
  27. }
  28. return b
  29. }