小编sri*_*dev的帖子

在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 ×1