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

在CoffeeScript中增加价格X数量的更有效方法?,coffeescript,Coffeescript,我想遍历一个项目数组,将价格乘以数量,然后得到一个总数。我已经写了下面的内容,但我想知道是否有一种比使用for循环更有效的方法,就像在一些神奇的单行程序中一样 test = [ { price: 13 qty: 2 }, { price: 40 qty: 3 } ] total = 0 for item in test total += item.price * item.qty alert total 我觉得不错。你可以做一个单人航班

我想遍历一个项目数组,将价格乘以数量,然后得到一个总数。我已经写了下面的内容,但我想知道是否有一种比使用for循环更有效的方法,就像在一些神奇的单行程序中一样

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

total = 0

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

alert total

我觉得不错。你可以做一个单人航班

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

但我不认为这是任何改进,几乎可以肯定效率较低。

与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

我找到了一种计算延迟函数的方法。我指的是你刚才删除的问题。如果你可以取消删除它,我可以张贴我的解决方案那里。很抱歉在这里发表评论。是的,正是我想要的!我的双线for-loop的单线替换。我就是搞不懂语法。谢谢很酷,你可以删除两个字符来缩短表达,我只是习惯性的这么做。