1

11

javascript 克隆对象/数组的方法 clone()

1

demo:

code:

 1         var Obj;
2 let clone = (Obj) => {
3 var buf;
4 if (Obj instanceof Array) {
5 buf = [];
6 var i = Obj.length;
7 while (i--) {
8 buf[i] = clone(Obj[i]);
9 console.log(`Array buf[k] = ${buf[i]}`);
10 console.log(`Array buf[k] = ${buf[i]}`);
11 }
12 console.log(`Array = ${buf}`);
13 return buf;
14 }else if(Obj instanceof Object){
15 buf = {};
16 for (var k in Obj) {
17 buf[k] = clone(Obj[k]);
18 console.log(`Object buf[k] = ${buf[k]}`);
19 }
20 console.log(`Object = ${buf}`);
21 return buf;
22 }else {
23 console.log(`Other = ${Obj}`);
24 return Obj;
25 }
26 }
27 let obj = {name: "xgqfrms", age: 23}
28 // let arr = [{name: "xgqfrms"},{age: 23}];
29 let arr = ["name", "xgqfrms", "age", 23];
30 let str = `xgqfrms`;
31
32 let o = clone(obj);
33 console.log(`\n\nTest obj = ${o}`);
34
35 let a = clone(arr);
36 console.log(`\n\nTest arr = ${a}`);
37
38 let s = clone(str);
39 console.log(`\n\nTest str = ${s}`);

1

1

1

1

1

1

1

1

javascript 克隆对象/数组的方法 clone()的更多相关文章

  1. JavaScript中对象数组去重方法

    在一次对后端返回的对象数组的操作时想通过indexOf()或者includes()的方法来实现对对象数组的去重但是行不通,因为用indexOf()返回的都是-1,一下记录两种对象数组(更具指定属性)去 ...

  2. JavaScript RegExp对象的exec()方法

    JavaScript RegExp对象的exec()方法用来匹配字符串,它的行为与match()有些不同. 对于RegExpObject.exec(),w3school上面是这样介绍的: exec() ...

  3. JavaScript 访问对象属性和方法及区别

    这篇文章主要介绍了浅析JavaScript访问对象属性和方法及区别的相关资料,仅供参考 属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸. ...

  4. JavaScript遍历对象4种方法和遍历数组的3种方式 代码

    //遍历对象 4种方法 //Object.keys(obj).forEach() console.log("keys...遍历</br>") var obj1 = { ...

  5. JavaScript原生对象属性和方法详解——Array对象

    http://www.feeldesignstudio.com/2013/09/native-javascript-object-properties-and-methods-array/ lengt ...

  6. 转: JavaScript 获取对象属性和方法

    一.获取对象属性和方法 Object.keys()for in 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返回的数组的所有属性(可枚举或不可枚举 ...

  7. JavaScript 获取对象属性和方法

    ShineJaie 原创整理,转载请注明出处. 一.获取对象属性和方法 Object.keys() 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返 ...

  8. JavaScript中操作数组的方法

    JavaScript Array 对象 对数组操作的方法分为两种 一种是会改变原始数组的变异方法,还有一种是不会改变原始数组的非变异方法. 总结 巧记 Push() 尾部添加 pop() 尾部删除 U ...

  9. JavaScript中对象数组 作业

    var BaiduUsers = [], WechatUsers = []; var User = function(id, name, phone, gender, age, salary) { t ...

随机推荐

  1. Error Code: 2006 - MySQL 5.7 server has gone away

    使用 Navicat 执行 sql 脚本失败 出现 Error Code: 2006 - MySQL server has gone away 原因 当MySQL客户端或mysqld服务器收到大于ma ...

  2. 更新gitignore后如何使其生效

    Files already tracked by Git are not affected; Git - gitignore Documentation https://git-scm.com/doc ...

  3. 七:Spring Security 前后端分离登录,非法请求直接返回 JSON

    Spring Security 前后端分离登录,非法请求直接返回 JSON 解决方案 在 Spring Security 中未获认证的请求默认会重定向到登录页,但是在前后端分离的登录中,这个默认行为则 ...

  4. JS:replace

    JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace(/-/g ...

  5. telnet | ping

    ping通常是用来检查网络是否通畅或者网络连接速度的命令.  ping www.baidu.com 而telnet是用来探测指定ip是否开放指定端口的. telnet xxx 443 查看443开放没 ...

  6. 这次一定要记住opencv和cv2是什么及其基础用法

    opencv是一个基于BSD许可发行(也就是俗称的开源)的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS上.由一系列 C 函数和少量 C++ 类构成的它轻量且高 ...

  7. Hive 中日志的存放位置

    目前hive启动无法成功,想查看下hive的日志定位问题,但发现hive的安装目录下并没有hive的日志,后来经过在网上谷歌发现: Hive中的日志分为两种 系统日志,记录了hive的运行情况,错误状 ...

  8. Educational Codeforces Round 91 (Rated for Div. 2) C. Create The Teams

    题目链接:https://codeforces.com/contest/1380/problem/C 题意 给 $n$ 个数分组,要求每组的最小值乘以该组数的个数不小于 $x$ . 题解 从大到小依次 ...

  9. AtCoder Beginner Contest 173

    比赛链接:https://atcoder.jp/contests/abc173/tasks A - Payment 题意 计算只用 $1000$ 元支付某个价格 $n$ 的找零是多少. 代码 #inc ...

  10. 洛谷P3796

    题目链接  题意:有n个由小写字母组成的模式串以及一个文本串T.每个模式串可能会在文本串中出现多次.哪些模式串在文本串T中出现的次数最多. 题解:ac自动机模板加强版,开一个数组单独记录各个字符串出现 ...