Home > Back-end >  Deleting Objects in JavaScript. I'm a bit confused with JavaScript's delete operator
Deleting Objects in JavaScript. I'm a bit confused with JavaScript's delete operator

Time:11-23

I'm a bit confused with JavaScript's delete operator.I am begginer in JS. Take the following piece of code:

function removeName (person){

   let user = {
       name : "name",
       surname: "surname"
   } ;
   console.log(delete user.name);

}
let x;
x = removeName();
console.log(x);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

After this piece of code has been executed,I take as output true and undefinied, I take undefinied because I find it difficult to do object in function but true why? Please I am a beginner, so I think my code is miserable.

This confuses me, because I expected that writing delete user.name would delete it and not just throw a true one.

CodePudding user response:

Looking at the definition of removeName, you're expected to send a person. You're currently not doing that, and you're placing the person inside the function too, and that would just end up scoping the person to this object.

So based on that info, this is how I assume you meant to write the code.

let user = {
  name : "name",
  surname: "surname"
};

function removeName (person){
   delete person.name;
}

removeName(user);
console.log(user);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

CodePudding user response:

Delete returns true. However you return nothing, so the function retuns undefined.

let user = {
  name : "name",
  surname: "surname"
};
delete user.name
console.log(user);
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

  • Related