Divida a string em duas, terá quase o mesmo comprimento

Eu tenho a string: "Esta é uma string de amostra" e preciso dividi-la em 2 strings, sem quebrar as palavras, e que as duas strings terão o comprimento mais próximo, portanto o resultado será:

["This is a", "sample string"].

Outro e.x .:

"Gorge is nice" => ["Gorge", "is nice"]

Também será bom, se a função puder obter como parâmetro o número de elementos que obterei como resultado.

Obrigado pela ajuda!

questionAnswers(3)

yourAnswerToTheQuestion