function NumberSearch(str) {
    var arr = str.split("");
    var sum = 0;
    var twoDigit = [];
    var two;
    var res = [];
    var arrFormat = preProcess(arr);
    console.log(arrFormat);
    //this function returns an array that has all numbers from the string
    function preProcess(ele) {
        for (var i = 0; i < ele.length; i++) {
            if (typeof ele[i] === 'number' && typeof ele[i + 1] === 'number') {
                twoDigit.push(ele[i], ele[i + 1]);
                two = twoDigit.join("");
                res.push(two);
            } else {
                if (typeof ele[i] === 'number' && typeof ele[i + 1] !==
            'number') {
                    res.push(ele[i]);
                }
            }
        }
        return res;
    }
    for (var k = 0; k < arrFormat.length; k++) {
        sum = sum + arrFormat[k];
    }
    return sum;
}

console.log(NumberSearch("99Hello1"));


我试图通过首先遍历字符串并收集所有数字然后总结来解决问题。

最佳答案

您可以使用正则表达式匹配数字并减少获取的数组。

关于javascript - 尝试返回字符串中数字的总和。如果字符串是“99Hello1”,则输出为100,如果字符串是“9hello9”,则答案为18。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47443576/

10-12 14:41