JavaScript How to empty an JS Object? empty object javascript,empty object literal,empty object truthy,empty

I have an object like

var person = {'id':null, 'name':'John Doe'}

After inserting the object value into the database, I will get another object from the server:

var personInDB = {'id':1234, 'name':'John Doe'}

I have used angular.merge to use updated the value of person with that of personInDB.

But, I want to empty person object before applying angular.merge, so that I only get the values in database. I don't want to assign new empty object to person as that will break data-binding in angular.

Answer:1

I want to empty person object...I don't want to assign new empty object to person

I'm not aware of any kind of built-in object .deleteAllProperties() method, so that leaves looping through the properties and calling delete on each individually. Following is a reasonably tidy way to do that:

Object.keys(person).forEach(k => delete person[k])

Or the slightly longer non-ES6 arrow function version for support back as far as IE9:

Object.keys(person).forEach(function(k) { delete person[k]})

For even older IE just use a for..in loop (with a .hasOwnProperty() check).

And obviously you can put any of the above into a function for ease of re-use:

function emptyObject(obj) {
  Object.keys(obj).forEach(k => delete obj[k])
}

emptyObject(person)

Note that although this answers what you've asked, I'm not sure why you think you need to do it at all. The example you show in the question has the same two properties before and after, so angular.merge() would just overwrite the old values with the new values without any need to first empty the object. (Are you trying to allow for a case (not shown) where the old version of your object might have properties that no longer exist in the new version?)

Answer:2

if you want empty the 'id' only

person['id']=null;

if you want to empty all attributes of the person object, then

Object.keys(person).forEach(key => person[key]=null);
Answer:3

If I understand correctly, you seem to think that you need to empty the original object before merging in the new one or the properties from the database won't be used. I don't think that's the case though. I looked at the source for angular.merge and it appears to copy (ie: overwrite) every property from the source object to the destination object. So you shouldn't need to empty it at all, just do the merge and all the values on the database object will be used.

Answer:4

Well, to avoid breaking angularjs's data binding I now update each field manually:

var person = {id : null, name: 'toto'};

// Ajax call
person.id = ajaxres.id;
person.name = ajaxres.name
Answer:5

I am trying to check the checkbox using Jquery but to no avail. Following is the code. $(document).ready(function() { var url_brand_alias = $("#hidden_brand_alias").val(); //gives a,b var ...

I am trying to check the checkbox using Jquery but to no avail. Following is the code. $(document).ready(function() { var url_brand_alias = $("#hidden_brand_alias").val(); //gives a,b var ...

  1. checkbox checked jquery
  2. checkbox checked jquery event
  3. checkbox checked jquery value
  4. checkbox checked jquery by id
  5. checkbox checked jquery function
  6. checkbox checked jquery by name
  7. checkbox checked jquery by class
  8. checkbox checked jquery prop
  9. checkbox checked jquery using value
  10. checkbox checked jquery example
  11. checkbox checked jquery not working
  12. checkbox checked jquery validation
  13. checkbox checked jquery if condition
  14. checkbox checked jquery codepen
  15. checkbox checked jquery stack overflow
  16. checkbox checked jquery w3schools
  17. checkbox checked jquery true false
  18. checkbox checked jquery on click
  19. checkbox checked jquery default
  20. checkbox checked jquery on change

Is there a way to remove the initial vertical line from the chart without removing the values? here is how my options look like: scales: { yAxes: [{ ticks: { ...

Is there a way to remove the initial vertical line from the chart without removing the values? here is how my options look like: scales: { yAxes: [{ ticks: { ...

  1. chart js remove first data
  2. chart js remove first point
  3. chart js remove first vertical line

I want to build a home page for a website project I'm doing with some friend where the whole page will basically be three images one next to the other like so: |1|2|3| --hover--> |1 ||| or --...

I want to build a home page for a website project I'm doing with some friend where the whole page will basically be three images one next to the other like so: |1|2|3| --hover--> |1 ||| or --...

I'm reading up on my Javascript and came across two very different Prototype pattern examples through my readings. Here is the example from Professional JavaScript for Web Developers, 3rd Edition: ...

I'm reading up on my Javascript and came across two very different Prototype pattern examples through my readings. Here is the example from Professional JavaScript for Web Developers, 3rd Edition: ...