1

I have an array of objects which is looped and then deleting a set of key and values from it.I would like to know how to delete a set of keys with a single line if code instead of writing each delete for every key.

for (var i = 0; i < oldWorkers.length; i++) {
    delete oldWorkers[i].$$hashKey;
    delete oldWorkers[i].location;
    delete oldWorkers[i].name;
    delete oldWorkers[i].mobile_no;
    delete oldWorkers[i].type;
    LoadEntries.saveDaybook(oldWorkers[i]).then(
      function (resp) {
        proms.push(resp);
      },
      function (err) {
        CommonService.hideLoader();
        CommonService.toast(err);
      }
    );
  }
Nidhin Kumar
  • 3,278
  • 9
  • 40
  • 72

2 Answers2

6

You can loop through keys and delete inside the callback

["$$hashKey", "location", "name", ".mobile_no", "type"].forEach(el => {delete oldWorkers[i][el];} )
void
  • 36,090
  • 8
  • 62
  • 107
2

You can't multiple delete via one statement, so some sort of iteration is required one way or another.

Declare a runtime array and iterate over it, perhaps.

['$$hashKey', 'location', 'name', 'mobile_no', 'type'].forEach(function(key) {
    delete oldWorkers[i][key];
});
Mitya
  • 33,629
  • 9
  • 60
  • 107