• JS基础回顾,小练习(克隆对象,数组)


    对象的克隆:

    var srcObj = {
        a: 1,
        b: {
            b1: ["hello", "hi"],
            b2: "JavaScript"
        }
    };
    
    function cloneObject(src) {
        var target = {};
        for(var k in src){
            target[k] = src[k];
        }
        return target;
    }
    var o = cloneObject(srcObj);
    console.log(o===srcObj); //false

    数组的克隆:

    方法1:

    var srcArr = ['html','css','javascript','Jquery','ajax','less'];
    function cloneArr(src) {
        var target = [];
        for(var i=0;i<src.length;i++){
            target[i] = src[i];
        }
        return target;
    }
    var arr = cloneArr(srcArr);
    console.log(arr);
    console.log(arr===srcArr); //false

    方法2:

    var srcArr = ['html','css','javascript','Jquery','ajax','less'];
    function cloneArr(src) {
        return srcArr.join().split(",");
    }
    var arr = cloneArr(srcArr);
    console.log(arr);
    console.log(arr===srcArr); //false

    方法3:

    var srcArr = ['html','css','javascript','Jquery','ajax','less'];
    function cloneArr(src) {
        var arr = [];
        for(var k in src){
            arr[k] = src[k];
        }
        return arr;
    }
    var arr = cloneArr(srcArr);
    console.log(arr);
    console.log(arr===srcArr); //false

    方法4:

    var srcArr = ['html','css','javascript','Jquery','ajax','less'];
    function cloneArr(src) {
        var len = src.length,arr=[];
        var str = src.toString();
        var reg = /([dw]+),/g;
        var i = 0,m;
        while(m = reg.exec(str)){
            arr[i] = m[1];
            i++; 
        }
        return arr;
    }
    var arr = cloneArr(srcArr);
    console.log(arr);
    console.log(arr===srcArr); //false
  • 相关阅读:
    杜教筛学习笔记
    AtCoder Beginner Contest 188 F
    求和公式
    洛谷P4848 崂山白花蛇草水 权值线段树+KDtree
    二次剩余学习笔记
    Miller Rabin素数检测与Pollard Rho算法
    半平面交学习笔记
    凸包习题总结
    多项式半家桶
    CF997解题报告
  • 原文地址:https://www.cnblogs.com/pssp/p/5276778.html
Copyright © 2020-2023  润新知