und total erlöse dich!
SO mag es Leute zu bestrafen, wenn sie ihre Arbeit nicht zeigen, aber ich bin nicht einer zu urteilen. Ich denke, du wirst mehr lernen, wenn du diese Probleme selbst ausprobierst, aber ich weiß, wie es ist, völlig verwirrt zu sein. und keine gutmütige Seele unter uns will sehen, dass du feststeckst.
In diesem Sinne denke ich wirklich, dass Sie viel von dieser Antwort lernen können. Bitte studieren Sie es sorgfältig und stellen Sie Nachfragen, wenn Sie verwirrt sind.
const ord = c =>
c.charCodeAt (0)
const isCharSeq = (x, y) =>
ord (x) + 1 === ord (y)
const dataReducer = ([x, ...xs], last = null, acc = []) =>
x === undefined
? acc.join (',')
: last === null
? dataReducer (xs, x, acc)
: isCharSeq (last, x)
? dataReducer (xs, x, acc)
: dataReducer (xs, last, acc.concat ([x]))
console.log (dataReducer ('abcdxefgh5wi')) // 'x,5,w'
console.log (dataReducer ('opqrstu')) // ''
console.log (dataReducer ('acdefghij')) // 'c,d,e,f,g,h,i,j'
console.log (dataReducer ('testu')) // 'e,s,t'
console.log (dataReducer ('a')) // ''
console.log (dataReducer ('')) // ''
dataReducer
mit einem richtigen Endaufruf implementiert ist, was bedeutet, es kann optimiert werden und arbeitet auch auf Strings, die Millionen oder Milliarden von Zeichen lang sind - auch wenn JavaScript VM niemals diese Optimierung unterstützen, keine Sorge, you can DIY.
Willkommen Überlauf zu Stack! Bitte nimm die [Tour] und lies die [Hilfe], insbesondere [* Wie stelle ich eine gute Frage? *] (/ Help/how-to-ask) Recherchiere, [suche] (/ help/searching)) für verwandte Themen zu SO, und versuchen Sie es. *** Wenn du feststeckst und dich nicht mehr lösen kannst, nachdem du mehr geforscht und gesucht hast, poste einen [mcve] von deinem Versuch und sage genau, wo du feststeckst. Leute werden froh sein zu helfen. Viel Glück! –
Wo sehen Sie einen Zweck für eine Wiederholung? –
@NinaScholz ist Rekursion nicht * die * Zweck selbst? ~ _^^ – naomik