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
  • 6,599
  • 19
  • 74
  • 131

4 Answers4

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

use delete to remove items from obj

Dee
  • 70
  • 7
0
_self.verses.forEach(verse => delete verse.verse);
Karan
  • 12,059
  • 3
  • 24
  • 40
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,541
  • 7
  • 21
  • 38