Как превратить слова в целые числа - PullRequest
0 голосов
/ 03 марта 2019

Мне нужна функция, которая принимает строку и превращает слова, равные числу, в целое число. 'Один пять семь три' -> 1573

Ответы [ 4 ]

0 голосов
/ 03 марта 2019

Вы можете сначала разбить на пробел, а затем использовать уменьшить

let words  = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9 }
let string = 'one five seven three'
let value  = string
             .split(' ')
             .reduce((o, i) => o + words[i] ,'')      

console.log(value);
0 голосов
/ 03 марта 2019

Хотя это похоже на числа JavaScript на слова , вы можете инвертировать этот код для своего варианта использования

Отправка сущности с кодом для справки https://gist.github.com/RichardBronosky/7848621/ab5fa3df8280f718c2e5263a7eabe004790e7e20

0 голосов
/ 03 марта 2019

Вот один из способов сделать это:

const numWords = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];

const changeStrToNum = str => {
  let num = '';
  str.split` `.forEach(numWord => {
    num += numWords.indexOf(numWord);
  });
  return +num;
};

console.log(changeStrToNum('one five seven three'));
0 голосов
/ 03 марта 2019

Вы можете взять объект с именами цифр и их значениями и вернуть новый номер.

var words = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9 },
    string = 'one five seven three',
    value = +string
        .split(' ')
        .map(w => words[w])
        .join('');        

console.log(value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...