【发布时间】:2023-03-27 19:43:02
【问题描述】:
我正在使用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 "")
更笼统地说:
- 选择一个分隔符字符串 S(例如
,) - 将每个参数转换为字符串
- 从每个此类字符串中删除所有出现的 S
- 在所有字符串之间插入 S(如
return theStrings.join(S))
我对这个解决方案的唯一抱怨是它感觉非常恶心。然而,这足以来这里询问我是否缺少某种语言习语、最佳实践或设计模式。
【问题讨论】:
-
嗯,
.replace(X by Y)是真的吗?我在做梦吗? -
(1) 不,那是伪代码; (2)这是一个测试:看书,看远,回头;你看到相同的图像吗?如果是,你醒了;如果没有,你在做梦。它与 sleep(8h) 调用期间大脑的 render_frame() 函数有关;-)
-
够了,我会接受的(你能睡 8 小时 吗?!幸运的家伙)
标签: javascript design-patterns tuples equality idioms