Функция выравнивания строки на JavaScript

Столкнулась с такой задачей, помогите пожалуйста!!

Написать функцию, входными параметрами которой являются: строка и целое число k.
Функция должна вернуть строку длиной k, представляющей собой выравнивание первой строки до длины k.
Выравнивание строки заключается в том, что между её отдельными словами дополнительно вносятся пробелы так, чтобы длина строки стала равной заданной длине, а последнее слово строки сдвинулось к её правому краю.

При решении, не использовать готовые строковые функции

Входные данные:

  • строка - любой набор символов, например: the sun is shining;
  • натуральное число, например: 21.

Словом, в этом случае, можно считать отрезок строки между двумя пробелами/после пробела (слово1 the, слово2 sun и т.д.)

Выходные данные - строка с нужным количеством пробелов: the__sun__is__shining.
Символ _, в данном случае, заменяет пробел.

У меня есть набросок функции:

function al(str,k){
        let sc='';
        let res='';
        for(let i=0; i<=k-str.length; i++){
            res+=sc
        }
        res+=str;
    }


Ответы (1 шт):

Автор решения: GreeM
function al(n, k) {
let x = 0
let p = ' '
t = n.split('')

for (let i = 0; i < k + 1; i++) {
    if (t.length == k) {
        n = t.join('')
        return n
    }

    if (t[i] == p) {
        t.splice(i + 1, 0, p)
        i = i + (1 + x)
    }

    if (i == k) {
        i = 0
        x++
    }
}

} console.log(al('the sun is shining', 50))

→ Ссылка