Zahlensumme bei JavaScript berechnen?

3 Antworten

Zwei Möglichkeiten:

  • Geh deinen String zeichen für Zeichen durch, wandle jedes Zeichen in eine Zahl um, und bilde die Summe über die Zahlen
  • Wandle deinen String in eine Zahl um. Dann teile die Zahl solange durch 10, bis sie 0 ist. Du schneidest also immer die hinterste Stelle weg (durch 10 teilen = Komma nach links verschieben). Diese hinterste Stelle ermittelst du jedes mal bevor du sie wegschneidest mit Modulo 10 ( also zahl%10) und addierst sie zur Summe.

Code für Methode 1:

numberInput = "123";
sum = [...numberInput].reduce((a,b) => Number(a)+Number(b))

Code für Methode 2:

numberInput = "123";
number = Number(numberInput)

sum = 0;
while (number/10 > 0) {
   sum = sum + number%10; // Hinterste Stelle zur Summe addieren
   number = Math.floor(number / 10); // Hinterste Stelle wegschneiden
}
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Fabijun20 
Fragesteller
 02.06.2021, 19:21

Sorry, kleiner Rechtschreibfehler von mir.... Meinte eigentlich die Quersumme :D
Also z.B. von 12 = 3

0
MrAmazing2  02.06.2021, 19:23
@Fabijun20

Achsooo, hab mich schon gewundert :D

Zwei Möglichkeiten:

  • Geh den String zeichen für Zeichen durch und wandle das jeweilige Zeichen in eine Zahl um. Bilde von den Zahlen die Summe.
  • Nimm die Zahl, mach Modulo 10, addiere das Ergebnis zur Summe, und teile dann die Zahl durch 10. Und das solange, bis /10 Null ergibt.
0

Hey, habe heute auch so eine ähnliche Aufgabe bekommen.

Meine Lösung (die auch funktioniert) lautet so:

btnZahl.onclick = function (){

  let checkOk = true;

  msgInNumber1.innerText = '';

if(isNumber(inNumber1.value) == false) {

msgInNumber1.innerText = 'Eingabe ist keine Zahl';

checkOk = false;

return

}

let counter = 0;

    let Sum = 0;

     while(counter < inNumber1.value){

       counter = counter +1;

       Sum = Sum + counter;

     }

     output1.innerHTML= 'Zahlensumme: '+Sum

 }

Hoffe das Hilft dir :)

Woher ich das weiß:Studium / Ausbildung

Hallo um in JavaScript zu addieren musst du nur -/+ eingeben Beispiel:

const input = YOURINPUT BSP:(10 + 30)
output ist dann: 40

oder

const input1 = "20"
const input2 = "10"


const calc = input1 + input2
Woher ich das weiß:Hobby

MrAmazing2  02.06.2021, 19:15

Bei deinem letzten Beispiel kommt 2010 raus :D

1
MrAmazing2  02.06.2021, 19:21
@1JaWi

Wenn ein + dasteht, und mind. eine der beiden Variablen ein String ist, dann wird das Plus als String Concatenation interpretiert. Und dann werden einfach beide Variablen zu einem neuen String zusammengefügt.

const input1 = "20"
const input2 = "10"
const calc = input1 + input2

Da kommt 2010 raus. "20" und "10" ist zusammenfgefügt "2010".

Was man hier machen müsste damit es funktioniert:

const calc = Number(input1) + Number(input2)
0
Fabijun20 
Fragesteller
 02.06.2021, 19:23
@MrAmazing2

Müsste man input1 und input2 unter Number() setzen, damit 30 rauskommt?

0
regex9  02.06.2021, 19:27
@Fabijun20

Entweder die Anführungszeichen weglassen (wenn man sich konkret auf obiges Beispiel bezieht) oder einen Typecast vornehmen (mit parseInt oder Number). Der folgende Snippet zeigt zu letzter Variante beide Möglichkeiten:

let a = "1";
let b = "2";
let sum = Number(a) + parseInt(b);
0
MrAmazing2  02.06.2021, 19:39
@Fabijun20

So wie ich's gemacht hab müsste man es machen.

const calc = Number(input1) + Number(input2)

Anstatt Number() geht natürlich auch parseInt().

(Ja, man muss beide Variablen zu einer Nummer umwandeln)

0