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

问题描述 投票:0回答:5

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

"001"
"021"
"031"

我想取单个字符串并将其拆分并以基本有效的方式添加数字。

例如,对于021上面的第二个字符串 - 期望的结果将被拆分为使得总和0 + 2 + 1 = 3 - 我如何使用vanilla javascript按每个数字拆分字符串?

javascript sum
5个回答
4
投票

试试这个:

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

正如Bucket在评论中所说,这会将字符串分成字符,然后使用array.reduce()将所有字符合并为一个值,使用箭头函数将它们转换为数字并对它们求和。


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

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

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

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);
© www.soinside.com 2019 - 2024. All rights reserved.