La copie d'un tableau d'objets à un autre Tableau, sans référence à l'objet en javascript(Deep copy)

J'ai un scénario où j'ai besoin de copier le tableau d'Objets(tableau Principal) à un autre Temp tableau qui ne devrait pas avoir un objet de référence, fondamentalement, si je fais toute modification du tableau Principal, il ne doit pas tenir compte, dans la Temp de la matrice de sorte que je vais conserver la copie de façon indépendante.

J'ai utilisé l'un de l'extrait de code de débordement de pile celui-ci n'est que partiellement comme si je supprime tous les objets du tableau Principal de la temp de la matrice de toujours conserver la valeur, mais quand je fais quelques modifications dans le tableau principal et cliquez sur le bouton annuler iam retrait de tous les objets du tableau principal à l'aide du tableau.Removeall(); mais la modification existent encore en Temp tableau donc, ce qui signifie que les objets ayant une référence.

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;
}

ma structure de l'objet, c'est comme

iam à l'aide de knock-out cadre.

newObjectCreation = function (localIp, RemoteIp, areaId) {
  this.localIP = ko.observable(localIp);
  this.remoteIP = ko.observable(RemoteIp);
  this.areaId = ko.observable(areaId);
};

template.ProtocolArray.push(new newObjectCreation('', '', '')); //to create default row

s'il vous plaît aidez-moi à cet égard.
Merci à l'avance.

InformationsquelleAutor sriramdev | 2012-03-27