How to restart a javascript object

5

I have a variable that holds an object

var gData = {};

class to create the object

class Automate{
  constructor(){
    this.nodes = [];
    this.links = [];
    }
}

instancio and create a new object

var automateObject = new Automate();

and finally I assign the object to the variable

gData = automateObject;

How can I make it possible at some point to delete all the information contained in the gData object and insert new data

I tried to use the "Delete" function of javascript, for example

delete gData.nodes
delete gData.links

But in the end it does not eliminate the property, but it keeps adding when adding new data

   function parseContent(content) {
delete gData.nodes;
delete gData.links;
        var lines = content.split("\n");
        //Creation de l'automate
        var automateObject;
        //Parcourir tout le fichier
        for (var i = 0; i < lines.length; i++) {
          //Pour creer l'onbjet automate
            if(lines[i].length > 1){
              if(i == 0){
                var currentline = lines[i].split("\n");
                currentline = lines[i].replace(/[\(\)]/g, '');  
                currentline = currentline.replace(/,/g, '');   
                currentline = currentline.split(" ");
                automateObject = new Automate();
                const eta1 = new Etat(parseInt(currentline[1]),'RED');
                ets.push(eta1);
              } else {
                //variable pour stocker le titre et la couleur
                var label;
                //variable pour couper chaque ligne du fichier
                var currentline = lines[i].split("\n");
                  //Enlever les parenthese de la chaine de characters
                  currentline = lines[i].replace(/[\(\)]/g, '');
                  //Enlever les citations de la chaine
                  currentline = currentline.replace(/['"]+/g, '');
                  //Couper la chaine en 3 morceaux
                  currentline = currentline.split(",",3);
                  //Couper le deuxieme atribut pour obtenir le nom de lien et la couleur
                  label = currentline[1].split(":");
                  //Creation d'un object de type automate
                  const tran = new Transition(parseInt(currentline[0]),label[0],label[1],parseInt(currentline[2]));
                  //Ajouter l'object dans l'array
                  trans.push(tran);
                  validateEtat(parseInt(currentline[0]));
                  validateEtat(parseInt(currentline[2]));
              }
            }
        }
    automateObject.nodes = ets; 
    automateObject.links = trans;
    gData = automateObject;
    console.log(gData);
    }
    
asked by Ernesto Emmanuel Yah Lopez 06.04.2018 в 12:35
source

1 answer

5

I'll summarize your code so you can see the problem:

function parseContent(content) {
    delete gData.nodes; //Borras el atributo
    delete gData.links; //Borras el atributo
    ...
    var automateObject; //declaras variable
    //Parcourir tout le fichier
    for (var i = 0; i < lines.length; i++) {
        ...
               //asignas un objeto a la variable
                automateObject = new Automate(); 

        ...
            }
        }
    }
    //rellenas los datos en la variable
    automateObject.nodes = ets;
    automateObject.links = trans;
    //gData borra su antiguo objeto y se le asigna uno nuevo
    gData = automateObject;
    console.log(gData); //muestras el valor de automateObject, que es lo guardado
}

The penultimate line makes the first two of the function totally irrelevant.

    
answered by 06.04.2018 в 12:51