Javascript 试图返回字符串中的数字总和。如果字符串为";99Hello1“;输出为100,如果为;“你好”;答案是18。被莫名其妙的错误击中 函数编号搜索(str){ var arr=str.split(“”); var总和=0; var两位数=[]; var-2; var-res=[]; var arrFormat=预处理(arr); console.log(ARR格式); //此函数返回包含字符串中所有数字的数组 函数预处理(ele){ 对于(变量i=0;iisNaN(+c)?r:+c+r,0); 控制台日志拆分后您有字符串。您的支票不是这样工作的。拆分后您有字符串。而且你的支票不是那样的。 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,如果为;“你好”;答案是18。被莫名其妙的错误击中 函数编号搜索(str){ var arr=str.split(“”); var总和=0; var两位数=[]; var-2; var-res=[]; var arrFormat=预处理(arr); console.log(ARR格式); //此函数返回包含字符串中所有数字的数组 函数预处理(ele){ 对于(变量i=0;iisNaN(+c)?r:+c+r,0); 控制台日志拆分后您有字符串。您的支票不是这样工作的。拆分后您有字符串。而且你的支票不是那样的。 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,arrays,Javascript,Arrays,我试图通过首先循环字符串并收集所有数字,然后求和来解决这个问题。您可以使用正则表达式匹配数字并减少得到的数组 函数和(字符串){ return(string.match(/\d+/g)| |[]).reduce(函数(a,b){returna++b;},0) } log(['99hello1','9hello9'].map(sum))您可以使用正则表达式匹配数字并减少获取的数组 函数和(字符串){ return(string.match(/\d+/g)| |[]).reduce(函数(a,b
函数和(字符串){
return(string.match(/\d+/g)| |[]).reduce(函数(a,b){returna++b;},0)
}
log(['99hello1','9hello9'].map(sum))代码>您可以使用正则表达式匹配数字并减少获取的数组
函数和(字符串){
return(string.match(/\d+/g)| |[]).reduce(函数(a,b){returna++b;},0)
}
log(['99hello1','9hello9'].map(sum))代码>您也可以使用单个还原阶段执行此作业
vars=Array.prototype.reduce.call(“99Hello9”,(r,c)=>isNaN(+c)?r:+c+r,0);
控制台日志代码>您也可以使用单个还原阶段执行此作业
vars=Array.prototype.reduce.call(“99Hello9”,(r,c)=>isNaN(+c)?r:+c+r,0);
控制台日志代码>拆分后您有字符串。您的支票不是这样工作的。拆分后您有字符串。而且你的支票不是那样的。
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"));