我试图总结所有提交的时间。但我不认为 extjs 允许使用 =+。有没有其他方法可以实现我的目标?
这就是我想要展示的:console.log(time=+ time);
ExtJS 是“只是”JavaScript,在 JavaScript 中没有从=+
“总和”到“总和”的神奇映射。使用呈现的形式等价于time = (0 + time)
(表达式的结果是0 + time
),这几乎没有用处。
要么在“times”上创建一个循环(它应该是一个序列,比如一个数组!)并使用一个“sum”变量;sum
或者,更好的是,使用支持或更高阶fold/reduce
函数1的 JavaScript 函数/库之一(包括 ExtJS 中可用的那些)。
(事实上,Ext.Array 已经有一个sum
.. 这有多好?)
1 MDC 页面上的示例是一个求和函数,为清楚起见,此处进行了一些修改:Array.reduce
var times = [0,1,2,3,4];
var sum = times.reduce(function(runningSum, number){
return runningSum + number;
}, 0);
如果times
序列中的项目不是数字,则可以根据需要使用数字序列(通过适当修改的函数)Ext.Array.sum
。
如果必须针对较旧的浏览器(例如 IE 8 或更早版本),请使用es5-shim.js并继续进行更高效的工作。