首页 > 其他分享 >针对特殊数据类型JSON.parse()无法完整实现深拷贝的情况下的解决方法

针对特殊数据类型JSON.parse()无法完整实现深拷贝的情况下的解决方法

时间:2022-10-25 09:57:18浏览次数:61  
标签:const object 数据类型 parse JSON toString array data

// 判断数据类型
function typeOf(obj) {
const toString = Object.prototype.toString
const map = {
'[object Boolean]': 'boolean',
'[object Number]': 'number',
'[object String]': 'string',
'[object Function]': 'function',
'[object Array]': 'array',
'[object Date]': 'date',
'[object RegExp]': 'regExp',
'[object Undefined]': 'undefined',
'[object Null]': 'null',
'[object Object]': 'object'
}
return map[toString.call(obj)]
}
// 导出
export function deepCopy(data) {
const t = typeOf(data)
let o

if (t === 'array') {
o = []
} else if (t === 'object') {
o = {}
} else {
return data
}

if (t === 'array') {
for (let i = 0; i < data.length; i++) {
o.push(deepCopy(data[i]))
}
} else if (t === 'object') {
for (const i in data) {
o[i] = deepCopy(data[i])
}
}
return o
}

标签:const,object,数据类型,parse,JSON,toString,array,data
From: https://www.cnblogs.com/huayang1995/p/16823875.html

相关文章

  • kubectl支持jsonpath
    官方:https://kubernetes.io/zh-cn/docs/reference/kubectl/jsonpath/给的JSon{"kind":"List","items":[{"kind":"None","metadata":{"name"......
  • 数据类型 varchar 和 varchar 在 modulo 运算符中不兼容处理方法
    用Ascii码替代   ......
  • Python的数据类型详解
    1.字符串及其常用函数1.字符串中访问指定的值字符串中访问指定的值1.用[i]下标表示,从左到右顺序从0开始,从右到左顺序从-1开始2.变量[头下标:尾下标],截取......
  • MySQL中数据类型宽度
    一、数据类型的取值范围和宽度字段类型对应的取值范围:类型字节有符号取值范围无符号取值范围TINYINT1-128~1270~255SMALLINT2-32768~327670......
  • jmeter组件:JSON Extractor
    Namesofcreatedvariables:参数名JsonPathexpressions:json提取表达式MatchNo:匹配数字,0表示随机匹配DefaultValues:默认值,有几个参数就要写几个......
  • 六大数据类型
    不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。字符串操作1.format()格式化字符串2.count()用于统计字符串里......
  • live messenger与稀疏文件—Sparse File Bit
    今天进行磁盘整理,发现一个奇怪的文件SimilarityTable_1:下面是我的C盘整理后的结果卷  (C:)   卷的大小                            ......
  • chap4 循环结构、chap6 回顾数据类型和表达式 第一小组 学习总结
    chap4循环结构第一小组学习总结一、内容梳理c语言循环结构是指根据某一条件判断重复执行的语句,核心内容为循环控制表达式,如果表达式为真,则继续执行;否则,循环结束。c语......
  • Jmeter-3.Json提取器处理上下游传参(例如获取的token给下游使用)
    需要提取哪个请求产生的值,就在哪个请求上添加,例如在获取token的请求上,右键,添加--后置处理器--Json提取器  下游需要用的时候通过${}引用,例如添加会议室需要token ......
  • JavaScript语法注释&数据类型和JavaScript语法变量
    JavaScript语法注释&数据类型注释:1.单行注释://注释内容2.多行注释:/*注释内容*/数据类型:1.原始数据类型(基本数据类型)1.number:数字。整数/小数/NaN(not......