相关疑难解决方法(0)

在JavaScript中深度克隆对象的最有效方法是什么?

克隆JavaScript对象的最有效方法是什么?我已经看到obj = eval(uneval(o));被使用,但这是非标准的,只有Firefox支持.

我做过类似的事情,obj = JSON.parse(JSON.stringify(o));但质疑效率.

我也看到了具有各种缺陷的递归复制功能.
我很惊讶没有规范的解决方案.

javascript clone object

5181
推荐指数
48
解决办法
189万
查看次数

在javascript中将对象数组复制到另一个没有对象引用的数组(深层复制)

我有一个场景,我需要将对象数组(主数组)复制到另一个Temp数组,该数组不应该有对象引用,如果我对主数组进行任何修改它不应该反映在Temp数组中,这样我将保留独立复制.

我已经使用了堆栈溢出中的一个代码片段,如果我从Main数组中删除所有对象,temp数组仍然保存值,但当我在主数组中进行一些修改并单击取消按钮iam从中删除所有对象主数组使用array.Removeall(); 但修改仍然存在于Temp数组中,这意味着该对象具有引用.

clone: function (existingArray) {
  var newObj = (existingArray instanceof Array) ? [] : {};
  console.debug('newObj value is ' + newObj);
  for (i in existingArray) {
    console.debug('i value is' + i);
    if (i == 'clone') continue;
    console.debug('existingArray[i] value ' + existingArray[i]);
    if (existingArray[i] && typeof existingArray[i] == "object") {

      newObj[i] = this.clone(existingArray[i]);
    } else {
      console.debug('in else part ' + existingArray[i]);
      newObj[i] = existingArray[i];
    }
  }
  return newObj;
}
Run Code Online (Sandbox Code Playgroud)

我的对象结构就像

我使用淘汰框架.

newObjectCreation = function (localIp, RemoteIp, areaId) { …
Run Code Online (Sandbox Code Playgroud)

javascript

40
推荐指数
5
解决办法
5万
查看次数

标签 统计

javascript ×2

clone ×1

object ×1