复制在JavaScript中的任意n维数组? [英] Copy an arbitrary n-dimensional array in JavaScript?

查看:90
本文介绍了复制在JavaScript中的任意n维数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我基本上寻找一个一般功能拷贝(阵列),将没有任何引用返回相同的n维数组前者。

I am basically looking for a general function copy(array) that will return identical n-dimensional array without any references to the former one.

推荐答案

这适用于数组,它不会嵌套对象的工作(不属于阵列):

This works for arrays, it won't work for nested objects (that aren't Arrays):

function copy(arr){
    var new_arr = arr.slice(0);
    for(var i = new_arr.length; i--;)
        if(new_arr[i] instanceof Array)
            new_arr[i] = copy(new_arr[i]);
    return new_arr;
}

使用这样的:

var arr = [
   [[1,2,3],[75]], 100,
   [[[1]]], [],
   [1,[2,[3],4],5], 6, 7, 8
];

var new_arr = copy(arr);

这篇关于复制在JavaScript中的任意n维数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆