/** * 判断是否为数组 * * @param {Object} arr */ function isArray(arr) { return Object.prototype.toString.call(arr) === '[object Array]' } /** * 深度复制数据 * * @param {Object} obj */ function deepClone(obj) { if ([null, undefined, NaN, false].includes(obj)) return obj if (typeof obj !== 'object' && typeof obj !== 'function') { return obj } var o = isArray(obj) ? [] : {} for (let i in obj) { if (obj.hasOwnProperty(i)) { o[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i] } } return o } export default deepClone