web前端技术博客
您当前的位置:web前端 > JavaScript知识点

JavaScript 中的数组拷贝

作者:只会切图的前端 发布时间:2021-03-02 19:44:51 浏览量:11

数组的拷贝:
1、浅拷贝

var a = { name: '名字', id: 1 };
var b = {};
for (var key in a) {
    if (a.hasOwnProperty(key)) {
        b[key] = a[key];
    }
}

2、深拷贝 
使用递归遍历

function deepClone(origin, target) {
    var toStr = Object.prototype.toString;
    target = target || {};
    for (var key in origin) {
        if (origin.hasOwnProperty(key)) {
            if (typeof (origin[key]) === "object" && origin[key] !== null) {
                if (toStr.call(origin[key]) === "[object Array]") {//数组
                    target[key] = [];
                } else {//对象
                    target[key] = {};
                }
                deepClone(origin[key], target[key]);//递归
            } else {
                target[key] = origin[key];
            }
        }
    }
    return target;
};

使用JSON的方法
var obj =JSON.parse(JSON.stringify(origin));

​​​​​​​

发表评论
验证码:
联系我
粤ICP备17092958号