我有一个名为e3
的字符串,其中包含字符串1,2,4,5,3,6
。我想将所有这些数字相加,以得到数字21
我正在考虑为此做一个for循环但是我不知道如何将字符串的一部分转换为它自己的值。
我有任何人想知道该怎么做请评论或回答。
答案 0 :(得分:8)
您可以使用String#split
作为字符串,并使用Array#reduce
进行求和。
var e3 = '1,2,4,5,3,6',
sum = e3.split(',').reduce(function (a, b) {
return a + +b; // +b forces b to number
}, 0);
console.log(sum);
答案 1 :(得分:1)
如果您确定它总是以逗号分隔的数字列表,您可以将它在逗号上拆分为数组,然后使用array.reduce()对它们求和
var asString = '1,2,4,5,3,6';
var asArray = asString.split(',');
var total = asArray.reduce(function(prev, current){
return prev + parseInt(current, 10);
}, 0);
console.log(total) // outputs 21;
答案 2 :(得分:1)
你可以这样做:
var e3 = "1,2,4,5,3,6";
// Split by separator ','
var stringsArr = e3.split(',');
var sum = 0;
// Loop through array of string numbers
stringsArr.forEach(function(str) {
// get Int from a string
var strVal = parseInt(str, 10);
sum += strVal;
});
这里是fiddle
答案 3 :(得分:0)
以下是执行所需操作的代码:https://plnkr.co/edit/8LSkZi0oC8msbHI0qOrz?p=preview
首先使用split方法 - 这会根据某个分隔符值将字符串分隔为字符串数组。在我们的示例中,分隔符是逗号,但它可以是空格或其他内容:
var testString = '1,2,4,5,3,6';
var separator = ',';
function splitStringOnCommasAndGetArray(string, separator){
var arrayOfStrings = string.split(separator);
return arrayOfStrings;
}
之后,我们遍历数组并将每个值转换为数字。我们添加数字,如下:
function addUpArray(arrayOfStrings){
var totalNumber = 0;
for(var i = 0; i < arrayOfStrings.length; i++){
var currentNum = parseInt(arrayOfStrings[i]);
console.log(currentNum);
totalNumber += currentNum;
}
return totalNumber;
}