0

I have code like below. I would like to remove verse from verses object.

_self.verses.filter(verse => {
    Object.keys(verse).forEach(function(key) {
       if(! _self.recieved_translation.includes(key))
       {
         // I would like to remove this verse from verses                       
       }
    });
});
abu abu
  • 5,716
  • 12
  • 55
  • 108

4 Answers4

2
_self.verses.filter(verse => {
    Object.keys(verse).forEach(function(key) {
       if(! _self.recieved_translation.includes(key))
       {
              delete verses[verses];                  
       }
    });
});
mshouman
  • 374
  • 1
  • 11
0

use delete to remove items from obj

Dee
  • 70
  • 7
0
_self.verses.forEach(verse => delete verse.verse);
Karan
  • 11,176
  • 3
  • 24
  • 37
0

filter skips elements, for which its callback returns false. Just see if you have the problematic key and return according boolean.

_self.verses = _self.verses.filter(verse => {
    // We don't need foreach here, we just need the first key
    var keyWithoutTranslation = Object.keys(verse).find(function(key) {
       return !_self.recieved_translation.includes(key);
    });
    // Now the filter will do the rest
    return keyWithoutTranslation === undefined;
});
Serge Seredenko
  • 3,501
  • 7
  • 20
  • 37