我正在使用SlickGrid和相关的DataView的groupBy功能。我想按一对列进行分组,但groupBy只允许按单个值进行分组。
为了解决这个问题(以AFAICT支持和预期的方式),我想向DataView传递一个函数h(row) {return TUPLE(row.x, row.y)}
,其中TUPLE
对应于此问题标题中的f
:它应该返回一个行为相对于相等的对象,好像它是TUPLE
的第一个和第二个参数的两元组:[然后DataView会按h(row)
分组行]
我最好的解决方案就像是
x.toString().replace("," by "") + "," + y.toString().replace("," by "")
更一般地说:
,
)return theStrings.join(S)
)我对此解决方案的唯一抱怨是,它感觉非常icky。然而,这足以告诉我是否缺少某种语言习语,最佳实践或设计模式。
答案 0 :(得分:0)
如果两个参数都是数字(或者可以转换为数字),则可以使用配对功能。
f(x,y)=(x + y)*(x + y + 1)/ 2 + y