我正在处理一个函数,该函数汇总了文本中的所有数字:
'use strict';
var sum = function(text, regex) {
var match;
return !!(match = text.match(regex || /\d+/g)) ?
match.reduce(function(prev, curr) {
return +prev + +curr;
})
: 0;
}
console.log(sum('1 12 40'));
console.log(sum('10 12 40'));
console.log(sum('1 12 510'));
console.log(sum('LLLLLLLL'));
console.log(sum('10 1'));

并不是用点数来编号:
'use strict';
var sum = function(text, regex) {
var match;
return !!(match = text.match(regex || /\d+/g)) ?
match.reduce(function(prev, curr) {
return +prev + +curr;
})
: 0;
}
console.log(sum('1.10 12.40 40.30'));

所以,我想请求帮助。我怎么能用指针对数字求和?
感谢。
答案 0 :(得分:1)
使用匹配带小数点的数字的正则表达式
var sum = function(text, regex) {
return (text.match(regex || /\d*(?:\.\d*)?/g) || [])
.reduce(function(prev, curr) {
return prev + +curr;
}, 0);
}
document.write(sum('1.10 12.40 40.30'));
答案 1 :(得分:0)
如果UIView.animateWithDuration(2) { () -> Void in
self.label.center = CGPointMake(self.view.center.x, self.label.center.y)
self.again.center = CGPointMake(self.view.center.x, self.again.center.y)
}
期望将数字作为字符串作为参数,可以将sum
与String.prototype.split()
RegExp
,/\s/
与Array.prototype.map()
一起用作回调
Number
答案 2 :(得分:0)
考虑到输入字符串的格式,您可以先使用String split()分割值,然后循环以汇总值:
function sum(text) {
var arr = text.split(" ");
var total = 0;
for (var i in arr) {
if (/[\d.]+/g.test(arr[i])) {
total += parseFloat(/[\d.]+/g.exec(arr[i]));
}
}
document.write("The sum is " + total);
}
sum("1.10 12.40 40.30");