【发布时间】:2018-10-22 04:06:11
【问题描述】:
我有一组 UNIX 时间戳,如下所示:
[
{"start_time":1540458000000, "end_time":1540472400000},
{"start_time":1540458000000, "end_time":1540486800000},
{"start_time":1540458000000, "end_time":1540501200000},
{"start_time":1540472400000, "end_time":1540486800000},
{"start_time":1540472400000, "end_time":1540501200000},
{"start_time":1540486800000, "end_time":1540501200000}
]
我想从start_time 和end_time 中挑选出所有唯一值,所以我只剩下:
[
{"start_time":1540458000000},
{"start_time":1540472400000},
{"start_time":1540486800000}
{"end_time":1540472400000},
{"end_time":1540486800000},
{"end_time":1540501200000},
]
我已经研究过使用groupBy、pluck、zipObj 和更多使用answer here 的东西。但不幸的是没有运气。
一个不错的选择是一个 ramda 函数,它无需指定特定的键即可工作。
【问题讨论】:
-
那么,获取该输出的逻辑是什么?是“获取所有不同的
start_time值和所有不同的end_time值,然后将它们放入按值排序的数组中”? -
@vlaz 没错。
-
@joshbang 看起来
union和unionWith仅在提供两个列表时才有效,而这里我只提供一个。 -
您可以使用 for in 循环按键将它们分开。创建两个名为 startTimes 和 endTimes 的数组。然后将 union 与两个新数组一起使用。
标签: javascript functional-programming ramda.js