使用玉模板引擎加总

时间:2012-04-02 19:08:01

标签: node.js pug

我需要加一个购物篮的总数,但我不知道如何用玉器做这个

以下是我认为我可以实现它的方法,但它不起作用,我试过的其他方法只是继续抛出错误。

有谁知道我会怎么做?

each item in bagItems
    - var total = total + item.realprice
p= total

3 个答案:

答案 0 :(得分:6)

使用阵列上的reduce方法应该很容易。

p= bagItems.reduce(function(total, item) { return total + item.realprice; }, 0)

答案 1 :(得分:3)

Prestaul的reduce答案是一个很好的解决方案,但我想我也会回答你,让你更深入地了解发生的事情。

问题是在each循环内创建的变量在循环外部不可用。您的代码在JavaScript中看起来像这样:

bagItems.forEach(function(item) {
    var total = total + item.realprice;
});
write("<p>" + total + "</p>");

我假设你熟悉JS的变量范围,但是函数内部定义的var基本上不能在它之外访问。

第二个问题是你将总数定义为等于自身+其他东西,但是你永远不会给它一个初始值,所以它最终会变成undefined + item.realprice NaN

这是解决这两个问题的替代解决方案:

- var total = 0
each item in bagItems
    - total += item.realprice
p= total

答案 2 :(得分:-4)

您通常不会在任何模板语言中操纵模板中的数据。计算应用中的总数并将变量传递给模板。