2016-05-27 152 views
-5

我对使用哪种方法来迭代对象的属性有疑问。迭代对象属性的Javascript方法

我有两个相同的对象。第一个对象是main,第二个对象是clone

有很多嵌套。我没有时间编写所有的for,for in,forEach循环,因为有很多嵌套。

如何从main替换clone的各个属性的值?这种方法是否已经存在?

+1

这种方法不内置的JavaScript。你将不得不自己编写或找到一个拥有这种方法的库。 – jfriend00

+0

好的。你用这种方法知道一些图书馆吗? – Maksim

+0

如果不能写出循环,则使用递归。 – Bergi

回答

1

你可以做这样的事情

function fillClone(source,target) 
{ 
    if(typeof source == "array" && typeof target != "array") 
     target = []; 
    else if(typeof source == "object" && typeof target != "object") 
     target = {}; 
    for (var i in source) { 
     if(typeof i == "object" || typeof i == "array") 
      fillClone(source[i],target[i]); 
     else 
      target[i] = source[i]; 
    } 
    return target; 
}