clone.js 467 B

123456789101112131415161718192021
  1. import { List } from './List.js';
  2. export function clone(node) {
  3. const result = {};
  4. for (const key of Object.keys(node)) {
  5. let value = node[key];
  6. if (value) {
  7. if (Array.isArray(value) || value instanceof List) {
  8. value = value.map(clone);
  9. } else if (value.constructor === Object) {
  10. value = clone(value);
  11. }
  12. }
  13. result[key] = value;
  14. }
  15. return result;
  16. }