Итак, есть этот Михиэль Хендрикс, который говорит: «Я ищу следующего человека, чтобы один на это», и поэтому я сам занимаюсь.
Здесь мы переворачиваем строку, используя Генератор обращаться назад через струну и ручную мяч каждого символа к массиву, который получает .join () Эд в конце.
function Bruce_ReverseGenerator(string) {
function* reverseGenerator(string) {
let str = string;
let index = str.length - 1;
while (true)
yield str.charAt(index--);
}
let result = [];
const gen = reverseGenerator(string);
var ch;
while (ch = gen.next().value) {
result.push(ch);
}
return result.join("");
}
Да, украшен для работы в тестовой раме и дал удивительно хорошие результаты, а именно:
C:\TMP>timer.ly /TIMES:1000 Sarah_ForOf 1502.905 ticks Bruce_CharAt 2646.537 ticks Sarah_SplitReverseJoin 2715.699 ticks Bruce_Recursive2 2786.771 ticks Nathanael_SplitReverseJoin 3104.762 ticks Bruce_Recursive1 3112.511 ticks Theophanis_SplitFor 3208.017 ticks Sarah_Reduce 3227.539 ticks Theophanis_SplitFor_Bruced 3706.581 ticks Sarah_Recursive 3810.085 ticks Bruce_ArrayApplyMap 5318.65 ticks Bruce_ReverseGenerator 7354.585 ticks Bruce_MapSortMap 9637.046 ticks Bruce_CharAt2 13913.316 ticks Bruce_RegReverse 490151.264 ticks
Оригинал: “https://dev.to/bugmagnet/reversing-a-string-using-a-generator-pj9”