我正在使用SlickGrid和相关的 DataView 的 groupBy 功能。我想按一对列分组,但 groupBy 只允许按单个值分组。
为了解决这个问题(以 AFAICT 支持和预期的方式),我想向 DataView 传递一个函数h(row) {return TUPLE(row.x, row.y)}
,其中TUPLE
对应f
于这个问题的标题:它应该返回一个对象,该对象的行为与平等有关,就好像它是一个二元组ofTUPLE
的第一个和第二个参数:[然后 DataView 将按h(row)
]对行进行分组
我最好的解决方案是
x.toString().replace("," by "") + "," + y.toString().replace("," by "")
更普遍:
- 选择一个分隔符字符串 S(例如
,
) - 将每个参数转换为字符串
- 从每个这样的字符串中删除所有出现的 S
- 在所有字符串之间插入 S (a la
return theStrings.join(S)
)
我对这个解决方案的唯一抱怨是它感觉非常恶心。然而,这足以来这里询问我是否缺少某种语言习语、最佳实践或设计模式。