Como excluir chave json aninhada dinamicamente?

Este é o exemplo json:

{
"search": {
"facets": {
  "author": [

  ],
  "language": [
    {
      "value": "nep",
      "count": 3
    },
    {
      "value": "urd",
      "count": 1
    }
  ],
  "source": [
    {
      "value": "West Bengal State Council of Vocational Education & Training",
      "count": 175
    }
  ],
  "type": [
    {
      "value": "text",
      "count": 175
    }
  ],
  }
 }

Existem várias maneiras de excluir a chavesearch.facets.source:

delete search.facets.sourcedelete jsobObj['search']['facets']['source']var jsonKey = 'source'; JSON.parse(angular.toJson(jsonObj), function (key, value) { if (key != jsonKey) return value; });

Acima de 1 e 2 não são dinâmicos e 3 é um caminho, mas não um caminho adequado. Porque se a fonte estiver presente em outro nó, ela não funcionará. Por favor, qualquer um pode me dizer como excluí-lo dinamicamente em qualquer tipo de chave aninhada. Porque não podemos gerar a sequência da matriz dinamicamente acima de 2.

questionAnswers(2)

yourAnswerToTheQuestion