在CoffeeScript中添加价格X数量的更有效方法?

时间:2014-10-30 07:49:29

标签: coffeescript

我想迭代一系列项目,将价格乘以数量,然后获得总计。我已经写了下面的内容,但我想知道是否有比使用for循环更有效的方法(如在某些神奇的单行中)

test = [
  {
    price: 13
    qty: 2
  },
  {
    price: 40
    qty: 3
  }
]

total = 0

for item in test
  total += item.price * item.qty

alert total

2 个答案:

答案 0 :(得分:0)

对我来说很好看。你可以做一个oneliner

total = (item.price * item.qty for item in test).reduce (t,s) -> t + s

但我不认为这有任何改善,几乎肯定效率低下。

答案 1 :(得分:0)

与OP相同,只是稍微调整一下 - 与你的一点点调整。

test = [
  {
    price: 13
    qty: 2
  },
  {
    price: 40
    qty: 3
  }
]
total += (p.price * p.qty) for p in test

或者只是一点点:

total += p.price * p.qty for p in test