对象深拷贝

news/2024/7/24 9:40:54
 var deepCopy = function(obj) {
        // 只拷贝对象
        if (typeof obj !== 'object') return
        // 根据obj的类型判断是新建一个数组还是一个对象
        var newObj = obj instanceof Array ? [] : {}
        for (var key in obj) {
          // 遍历obj,并且判断是obj的属性才拷贝
          if (obj.hasOwnProperty(key)) {
            // 判断属性值的类型,如果是对象递归调用深拷贝
            newObj[key] = typeof obj[key] === 'object' ? deepCopy(obj[key]) : obj[key]
          }
        }
        return newObj
      }

如果是写在vue中的方法,可以是下面的

deepCopy (obj) {
      if (typeof obj !== 'object') return
      // 根据obj的类型判断是新建一个数组还是一个对象
      var newObj = obj instanceof Array ? [] : {}
      for (var key in obj) {
        // 遍历obj,并且判断是obj的属性才拷贝
        if (obj.hasOwnProperty(key)) {
          // 判断属性值的类型,如果是对象递归调用深拷贝
          newObj[key] = typeof obj[key] === 'object' ? this.deepCopy(obj[key]) : obj[key]
        }
      }
      return newObj
    }

 


http://www.niftyadmin.cn/n/951622.html

相关文章

字符集与字符编码

1. 字符集与字符编码 参考: 字符集和URL的编码与解码字符集和字符编码(Charset & Encoding)全网最全面、全详细的编码、解码知识!!!字符编码的概念(UTF-8、UTF-16、UTF-32都是什么鬼&…

Vuejs2.0学习之二(Render函数,createElement,vm.$slots,函数化组件,模板编译,JSX)

vue中的render函数,我在网上找了很多,下面这一篇文章最详细 https://blog.csdn.net/kkae8643150/article/details/52910389/ {// 和v-bind:class一样的 APIclass: {foo: true,bar: false},// 和v-bind:style一样的 APIstyle: {color: red,fontSize: 14p…

用vue-cli+iview实现的项目总结——Menu系列问题总结(悦读奇缘平台管理)

1、Menu 导航菜单: 问题1: 当屏幕小的时候,如果我们选择的主题是dark或者是primary,那掉下来的文字会看不到 如下图官网示例: 正常情况下: 当屏幕缩小的时候: 此时统计分析和综合设置就找不…

使用wangEditor富文本编辑器遇到的问题总结

怎么使用和安装我就不详细说了,文档写得很清楚,https://www.kancloud.cn/wangfupeng/wangeditor3/332599 1、当屏幕缩时,富文本编辑器的选项会被隐藏,如下图官网的demo:当屏幕变小时,菜单选项就超出了富文…

js将日期格式转化为YYYY-MM-DD HH:MM:SS

一、js将日期格式转化为YYYY-MM-DD HH:MM:SS Date.prototype.Format function (fmt) { var o {"M": this.getMonth() 1, //月份 "d": this.getDate(), //日 "h": this.getHours(), //小时 "m": this.getMinutes(), //分 "s&…

vue-cli+iview打包后iview自带的字体图标找不到的解决办法

使用iview做项目的时候,打包上传到服务器后,iview中自带的字体图标显示不出来,百度了很多方法,下面的方法可靠哦 更改 build/utils.js 文件中 ExtractTextPlugin 插件的options 配置: 添加 publicPath: ../../, 完美…

使用vue+iview Form组件 按enter键阻止页面刷新

如果我们在Form组件中嵌套使用Input组件的时候&#xff0c;会有一个小问题&#xff0c;如果我们在一个Form组件中只使用了一个Input组件&#xff0c;当该Input组件获取焦点的时候&#xff0c;我们按enter键&#xff0c;整个页面会刷新 解决办法&#xff1a; 方法一、 <For…

vue怎么实现不同组件间(非父子组件间的通信),一个变化,另一个实时变化的效果

vue中&#xff0c;只有组件内的值&#xff0c;发生了变化&#xff0c;组件才会重新渲染&#xff0c;那我们怎么实现&#xff0c;两个不同组件&#xff0c;一个组件内的值发生变化&#xff0c;另一个组件也随之变化&#xff0c;比较常用的场景就是下面的例子了&#xff1a; 头部…