我在应用程序中有一些逻辑,可以生成如下所示的字符串:
"001"
"021"
"031"
我想采用单个字符串并将其分割并以一种基本有效的方式添加数字。
例如上面的第二个字符串
021
-期望的结果将被分割成总和0 + 2 + 1 = 3
-如何使用香草javascript按每个数字分割字符串?
答案 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"));