Hallo donp,
s[i] ist bei einem String einfach das i. Zeichen. Von daher wird da nichts in ein Array umgewandelt. Über Umwandlungen muss man an der Stelle sowieso nicht mehr diskutieren, wenn man sich entschieden hat, das mit Strings zu machen, dann kann es nur noch um Verständlichkeit gehen, Effizienz hat man sowieso aufgegeben.
Was das || angeht. || ist halt ein logisches Oder wie in den meisten Programmiersprachen auch mit etwas extra Semantik. Man kann solche Tricks toll finden, Erwartungskonform sind sie nicht, weil das Zeichen eben idR anders verwendet wird.
function quersumme( n, b ) { return n < 10 ? n : n%b || b }
Das ist jetzt aber falsch. Wieso n < 10, wenn Du zu einer beliebigen Basis rechnest?
Den Zahlentheoretischen zusammenhang auszunutzen ist natürlich wirklich Chic. Müsstest Du nur noch Beweisen (für den Zusammenhang Quersumme/teilbar durch (Basis - 1) <-> Zahl teilbar durch (Basis - 1) habe ich das irgendwann mal gemacht. Für diesen allgemeineren Zusammenhang dürfte das ähnlich klappen, sieht aber etwas fummelig aus.
Für andere Arten von Quersummen klappt das aber zum Glück nicht ;-)
Grüße
Daniel