【问题标题】:count objects in an each loop with groovy用 groovy 计算每个循环中的对象
【发布时间】:2017-09-04 23:38:47
【问题描述】:
def numbers = [[duration:1, calldate:6, disposition:1], [duration:1, calldate:6, disposition:1], [duration:2, calldate:7, disposition:2], [duration:2, calldate:7, disposition:2], [duration:1, calldate:7, disposition:1], [duration:1, calldate:7, disposition:1], [duration:2, calldate:7, disposition:2], [duration:2, calldate:7, disposition:2], [duration:2, calldate:7, disposition:2], [duration:1, calldate:7, disposition:1], [duration:2, calldate:7, disposition:2], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1]]

numbers.eachWithIndex { item, i ->


println "${numbers[i]} calldate: ${item.calldate} Duration:         ${item.duration}  Disposition: ${item.disposition}"

        };

我需要从持续时间和处置中计算对象,但调用日期必须是唯一的

【问题讨论】:

  • 你能提供预期的输出吗?

标签: grails groovy


【解决方案1】:
numbers.groupBy {
   it.calldate
}.sort().each{
  def duration = (it.value*.duration).sum()
  def disposition = (it.value*.disposition).sum()
  println "$it.key $duration $disposition"
}

输出:

  6 2 2
  7 15 15
  8 94 94

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多