Überprüfung der Ziffern einer Zahl in JavaScript

Nehmen wir an, wir haben eine Zahl:

javascriptlet num = 12345;

Der Versuch, auf das erste Zeichen der Zahl zuzugreifen, führt zu unerwartetem Verhalten:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // das wird ausgeführt
}

Wie Sie bereits wissen sollten, liegt das Problem darin, dass man auf die Zeichen eines Strings zugreifen kann, aber nicht auf die Ziffern einer Zahl:

javascriptlet num = 12345;
console.log(num[0]); // gibt undefined aus

Um das Problem zu lösen, wandeln wir unsere Zahl in einen String um:

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // das wird ausgeführt
} else {
  console.log('---');
}

Es ist nicht notwendig, eine neue Variable einzuführen. Man kann [0] direkt auf das Ergebnis der Funktion String anwenden:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('richtig'); // gibt 'richtig' aus
} else {
  console.log('falsch');
}

Nehmen wir nun an, wir möchten die erste Ziffer überprüfen, ob sie gleich 1 oder 2 ist. Schreiben wir den entsprechenden Code:

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

In diesem Fall wiederholt sich die Konstruktion String(num)[0] zweimal. Das ist erstens lang und zweitens nicht optimal, da wir die Zahl zweimal in einen String umwandeln - das zweite Mal ist überflüssig, und Programmierressourcen werden dafür aufgewendet.

Korrigieren wir das Problem:

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Gegeben sei eine ganze Zahl. Schreiben Sie eine Bedingung, die überprüft, ob die letzte Ziffer dieser Zahl gleich Null ist.

Задание 2

Nehmen wir an, in der Variable num ist eine Zahl gespeichert. Bestimmen Sie, ob die Zahl gerade oder ungerade ist. Eine Zahl ist gerade, wenn die letzte Ziffer gleich 0, 2, 4, 6 oder 8 ist, andernfalls ist sie ungerade.