Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript使用函数复制对象的嵌套数组_Javascript_Arrays_Object_Copy - Fatal编程技术网

Javascript使用函数复制对象的嵌套数组

Javascript使用函数复制对象的嵌套数组,javascript,arrays,object,copy,Javascript,Arrays,Object,Copy,嗨我想用函数复制javascript中的对象数组 我有这样的东西 var User = function() { this.name = ''; var surname = ''; function f() { //some function here } this.sayHello = function() { console.log( 'Hello ' + this.name + ' ' + surname )


我想用函数复制javascript中的对象数组

我有这样的东西

var User = function() {
    this.name = '';
    var surname = '';

    function f() {
        //some function here
    }

    this.sayHello = function() {
        console.log( 'Hello ' + this.name + ' ' + surname )
    }
}

var arr = [];
arr.push([ new User(), new User()]);
arr.push([ new User(), new User()]);
正如你们所看到的,我有一些私有和公共属性的对象,声明了这个,战争,私有和公共函数

是否有复制此数组的方法? 我使用这种方法

function copy( arr ) {
    var c = [];
    for( var i = 0; i < arr.length; i ++ ) {
        c.push(arr[i].concat([]));
    }
}
是否有方法使用函数复制嵌套的对象数组?
比您更好。

一个适用于所有情况的好解决方案是。没有内置的解决方案。而且,在保持原型链的同时,创建它并不一定简单@UtsavShah真的没有一个深度拷贝解决方案可以适用于所有情况;这是一个非常重要的问题。然而,你提供的链接可能是最好的开始:)你是对的@Pointythank you all。但我还有一个问题。我可以用函数复制对象吗?一个适用于所有情况的很好的解决方案是。没有一个内置的。而且,在保持原型链的同时,创建它并不一定简单@UtsavShah真的没有一个深度拷贝解决方案可以适用于所有情况;这是一个非常重要的问题。然而,你提供的链接可能是最好的开始:)你是对的@Pointythank you all。但我还有一个问题。我可以用函数复制对象吗?
var arr2 = copy(arr)
arr[0][0].name = 'name';
console.log(arr2[0][0].name) // prints 'name'