Добавление всего числа одной строки в JavaScript - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь взять строку «27 4 2019» и вывести сумму 2050. Не в строке.

Пока я разделил это.

let x = '27 4 2019'
console.log(x.split('').? 

Я не уверен, как сложить числа после разбиения.

Ответы [ 4 ]

1 голос
/ 23 апреля 2019

Разделить на основе пробелов и reduce при преобразовании в числа:

const str = "27 4 2019";
const output = str.split(/\s/).reduce((a, b) => a + parseInt(b), 0);
console.log(output);
0 голосов
/ 23 апреля 2019

Другим чистым решением может быть использование regex для поиска чисел в строке и передачи вспомогательной функции, чтобы объявить их как

let x = '27 4 2019', total = 0;
x.replace(/\d+/g, (obj) => total += +obj);
console.log(total);
0 голосов
/ 23 апреля 2019

Вы можете использовать функцию RegEx replace, чтобы перебрать все ваши числовые элементы и добавить их.+n действует как оператор для приведения строки к числу, которое, как вы знаете, будет работать, потому что мы извлекаем только числовые элементы из строки.Это также имеет дополнительное преимущество, заключающееся в однократной передаче строки, когда другие ответы могут проходить через нее несколько раз, и это не требует приведения вашей строки в массив.

let total;
string.replace(/[0-9]/g, (n) => total = total ? total + (+n) : +n);

let x = '27 4 2019', total;
x.replace(/[0-9]/g, (n) => total = total ? total + (+n) : +n);

console.log(total);
0 голосов
/ 23 апреля 2019

Вы можете попробовать:

  1. split () String для массива значений с использованием whitespace ' ' в качестве разделителя.
  2. map () значения массива от String типа до Number.
  3. Reduce () массив до одного значения.

const s = '27 4 2019';

const out = s.split(' ').map(Number).reduce((sum, curr) => sum + curr);

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