我有一个看起来像这样的对象:

object =
  title : 'an object'
  properties :
    attribute1 :
      random_number: 2
      attribute_values:
        a: 10
        b: 'irrelevant'
    attribute2 :
      random_number: 4
      attribute_values:
        a: 15
        b: 'irrelevant'
   some_random_stuff: 'random stuff'

我想提取attribute1 和attribute2 上'a' 值的总和。
在 Coffeescript 中执行此操作的最佳方法是什么?

(我已经找到了一种方法来做到这一点,但这看起来像是 Java 翻译成咖啡,我希望有一个更优雅的解决方案。)

最佳答案

这是我想出的(根据评论编辑为更通用):

sum_attributes = (x) =>
  sum = 0
  for name, value of object.properties
    sum += value.attribute_values[x]
  sum

alert sum_attributes('a') # 25
alert sum_attributes('b') # 0irrelevantirrelevant

所以,这可以满足您的需求……但它可能无法完全满足您对字符串的需求。
您可能希望传入累加器种子,例如 sum_attributes 0, 'a'sum_attributes '', 'b'

关于json - 如何总结咖啡脚本中 JSON 对象的属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7505670/

10-14 18:30
查看更多