需要帮助从一组对象中删除一个项目

时间:2014-03-11 13:09:10

标签: groovy

我正在制作一份绩效考核申请表。我有一个跟踪各个人的回复的集合。这个特殊的关闭将收集所有评估的分数

    def scores = responses.collectEntries { Category key, Collection<Response> value ->
        [(key): value.score]
    }

这是value参数的结构,在闭包

中传递

http://snag.gy/q4OEq.jpg

我正在尝试删除添加到[(key):value.score]的分数。更具体地说,我试图阻止添加某些self评估。

我尝试过几件事。这是其中两个。

    def scores = responses.collectEntries { Category key, Collection<Response> value ->

        for (i in value) {
            if (i.evaluation.respondent == i.evaluation.performanceReview.employee) {
                //didn't work
                value.remove(i)

                // also didn't work
                value - i
            }
        }

        [(key): value.score]
    }

if语句工作正常,在进行自我评估时会触及内部条件。这就是if语句中不起作用的内容。我做错了什么?

1 个答案:

答案 0 :(得分:0)

你不能摆脱for循环并且只有:

    [ key,
      value.findAll {
          it.evaluation.respondent != it.evaluation.performanceReview.employeescore
      }.score ]

作为collectEntries电话的主体?