UNPKG

alt-library

Version:

ALT library - algorithm and data structures

48 lines (37 loc) 862 B
import isObject from "./isObject"; import isArray from "./isArray"; /** * Given a data as an input, return a copied (clone ) of the input * Example * =========================== * s * =========================== * @param {any} data * @return {boolean} */ function clone(data) { let copied; if (!isObject(data) || data === null) { copied = data; return copied; } if (isArray(data)) { copied = []; for (let i = 0; i < data.length; i++) { copied[i] = clone(data[i]); } return copied; } copied = {}; for (let key in data) { if (data.hasOwnProperty(key)) { if (!isObject(data)) { copied[key] = data[key]; } else { copied[key] = clone(data[key]); } } } return copied; } export default clone;