Какой самый простой способ добавить отдельные числа в строку, используя JavaScript - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть некоторая логика в приложении, которое генерирует строки, подобные следующим:

"001"
"021"
"031"

Я хочу взять одну строку, разделить ее и сложить числа простым и эффективным способом.

например, для второй строки выше 021 - желаемый результат будет разделен так, чтобы получилась сумма 0 + 2 + 1 = 3 - как разделить строку по каждому числу, используя ванильный javascript?

Ответы [ 5 ]

0 голосов
/ 18 декабря 2018

function mathAdd(s) {
  // take input and split it by ''
  // use a as the accumulator
  // use v as the value
  // add the value to the accumulator and start at 0
  // return the value
  return String(s).split('').reduce((a, v) => a + parseInt(v, 10), 0);
}

console.log(mathAdd("001"));
console.log(mathAdd("021"));
console.log(mathAdd("031"));
0 голосов
/ 18 декабря 2018

Это, вероятно, настолько эффективно, насколько это возможно, но оно не выполняет никакой проверки ввода:

var input = "0021031";
var zeroCode = "0".charCodeAt(0);

function sum(input) {
  var result = 0;
  for (var i = 0; i < input.length; ++i) {
    result += input.charCodeAt(i) - zeroCode;
  }
  return result;
}

console.log(sum(input))
0 голосов
/ 18 декабря 2018

var result = 0;
var second = "021";
var arr = second.split("");

for(var i = 0; i < arr.length; i++)
    result = +arr[i] + result;

console.log(result);
0 голосов
/ 18 декабря 2018

Попробуйте это:

var array = "0123456";
var result = array.split("").reduce((acc, cur) => {return (+acc) + (+cur);},0);
console.log(result);

Как сказал Бакет в комментариях, строка будет разбита на символы, а затем используйте array.reduce(), чтобы объединить все символы в одно значение с помощью функции стрелки, котораяпреобразует их в числа и суммирует их.

0 голосов
/ 18 декабря 2018

    var str = "021";
    var a = str.split(""); // converts the string into an array
    
    var result = a.reduce((i, n) => {
        return Number(i)+ Number(n)
    },0); 
    
    console.log(result)
    //result = 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...