Ich versuche, Wörter wie "erste" "zweite" "dritte" aus einem Eingabefeld zu erhalten und die Wörter in Ints umzuwandeln. Also "first" = 1, "second" = 2 und so weiter. Gibt es eine Möglichkeit, dies mit Jquery zu tun? Das habe ich bisher versucht.

 var functionGet = function(strSelector) {
        var input = $(strSelector).val();
        input = parseInt(input);
        return input;
      };

Dies funktioniert jedoch eindeutig nicht, da "first" nicht dasselbe ist wie "one".

1
Programmer1010 18 Apr. 2018 im 00:04

3 Antworten

Beste Antwort

Der einfachste Weg wäre mit einer Legende

var numbers = {
  first: 1,
  second: 2,
  third: 3
}

var inputVal = $('input').val()
var intNum = numbers[inputVal]
0
James Harrington 17 Apr. 2018 im 21:11

Es gibt keine Möglichkeit, dies automatisch zu tun.

Stattdessen müssen Sie eine Art Zuordnungswörterbuch erstellen, das die Wörter für jede Zahl und die Zahl enthält, in die sie konvertiert werden.

Etwas wie das:

const dict = [
  ['zero'],
  ['one', 'first'],
  ['two', 'second']
  // etc
];

function convertWordToNumber(word) {
  for (let i in dict) {
    if (dict[i].includes(word)) {
      return i;
    }
  }
  
  return 'unknown';
}

['zero', 'second', 'one']
  .forEach(w => console.log(convertWordToNumber(w)));

In diesem Fall ist die Zahl der Index des Arrays, sodass Sie zero einschließen müssen (wenn Sie jedoch möchten, dass nichts damit übereinstimmt, können Sie stattdessen ein leeres [] einfügen).

Zum Konvertieren werden dann alle Wörter durchlaufen und alle Wörter überprüft. Wenn eine Übereinstimmung gefunden wird, wird der Index zurückgegeben, der die Zahlenform dieses Wortes ist.

0
samanime 17 Apr. 2018 im 21:14

Eine Möglichkeit besteht darin, ein Array wie ["erste", "zweite", "dritte" ...] zu schreiben, und Sie können den Index von finden und den passenden Index + 1 drucken, wenn der Index> -1 ist

0
hashbytes 17 Apr. 2018 im 21:08