alt-library
Version:
ALT library - algorithm and data structures
48 lines (37 loc) • 862 B
JavaScript
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;