UNPKG

tframe-utility

Version:
61 lines (57 loc) 1.36 kB
// 对象深拷贝 let deepCopy = (obj) => { let o = obj instanceof Array ? [] : {}; for (let k in obj) { let val = obj[k]; if (typeof val === "object") { o[k] = deepCopy(val); } else { o[k] = val; } } return o; }; /* 获取 JS 对象类型 * @obj:要判断类型的值 */ let getJsObjectType = obj => { let str = typeof obj; if (str === 'object') { if (Array.isArray(obj)) { str = 'array'; } else if (obj instanceof Date) { str = 'date'; } else { str = 'object'; } } return str; }; /* * 在目标数组的指定位置之后进行插入 * @toArr:要被插入元素的目标数组 * @fromObj:要插入目标数组的数组或对象 * @index:目标数组即将被插入的索引位置,起始于0 * @reserve:是否保留原目标数组不变 */ let arrInsert = (toArr, from, index, reserve = false) => { let _arrTaget = []; if (reserve) { let [...toArrNew] = toArr; _arrTaget = toArrNew; } else { _arrTaget = toArr; } let _isArr = Array.isArray(from); let _arr1 = _arrTaget.splice(0, index + 1); if (_isArr) { return [..._arr1, ...from, ..._arrTaget]; } else { return [..._arr1, from, ..._arrTaget]; } }; module.exports = { deepCopy, getJsObjectType, arrInsert };