Encontrar a enésima ocorrência de um caractere em uma string no javascript

Eu estou trabalhando em um código javascript para encontrar a enésima ocorrência de um caractere em uma string. Usando oindexOf() função somos capazes de obter a primeira ocorrência do personagem. Agora o desafio é obter a enésima ocorrência do personagem. Consegui obter a segunda terceira ocorrência e assim por diante usando o código abaixo:

function myFunction() {
  var str = "abcdefabcddesadfasddsfsd.";

  var n = str.indexOf("d");
  document.write("First occurence " +n );

  var n1 = str.indexOf("d",parseInt(n+1));
  document.write("Second occurence " +n1 );

  var n2 = str.indexOf("d",parseInt(n1+1));
  document.write("Third occurence " +n2 );

  var n3 = str.indexOf("d",parseInt(n2+1));
  document.write("Fourth occurence " +n3);

  // and so on ...
}

O resultado é dado abaixo

First occurence 3 
Second occurence 9 
Third occurence 10 
Fourth occurence 14 
Fifth occurence 18 
Sixth occurence 19

Eu gostaria de generalizar o script para que eu possa encontrar a enésima ocorrência do caractere, pois o código acima requer que você repita o script n vezes. Deixe-me saber se existe um método ou uma alternativa melhor para fazer o mesmo. Seria legal se simplesmente dessemos a ocorrência (em tempo de execução) para obter o índice desse caractere.

A seguir estão algumas das minhas perguntas:

Como fazemos isso em JavaScript?Alguma estrutura fornece alguma funcionalidade para fazer a mesma implementação de maneira mais fácil ou quais são os métodos alternativos para implementar a mesma em outras estruturas / linguagens?

questionAnswers(5)

yourAnswerToTheQuestion