使用JavaScript在字符串中添加单个数字的最简单方法是什么

时间:2018-12-18 15:30:08

标签: javascript sum

我在应用程序中有一些逻辑,可以生成如下所示的字符串:

"001"
"021"
"031"

我想采用单个字符串并将其分割并以一种基本有效的方式添加数字。

例如上面的第二个字符串 021-期望的结果将被分割成总和0 + 2 + 1 = 3-如何使用香草javascript按每个数字分割字符串?

5 个答案:

答案 0 :(得分:4)

尝试一下:

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

正如Bucket在评论中所说,这会将字符串拆分为字符,然后使用array.reduce()通过使用箭头功能将所有字符合并为一个值,该功能将其转换为数字并求和。

答案 1 :(得分:0)

    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

答案 2 :(得分:0)

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);

答案 3 :(得分:0)

这可能会尽可能地有效,但是不会执行任何输入验证:

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))

答案 4 :(得分:0)

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"));