在前端开发中,处理数据集是一个常见的任务。有时候,我们需要将数据集按照时间进行分类,比如将一组数据集按照每分钟进行划分。在ES9中,我们可以使用对象函数来实现这个功能。
函数介绍
在ES9中,新增了一些对象函数,其中包括了Object.fromEntries()
函数。Object.fromEntries()
函数在接收到一个键值对的数组时,会返回一个对象,该对象由数组中的键值对组成。在本例中,我们将使用Object.fromEntries()
函数,对一个时间戳数组进行分组,将时间戳按照每分钟进行分类。
技术实现
首先,我们需要创建一个数组,该数组包含一组时间戳。时间戳通常是一个数字(单位为毫秒),它表示了一个日期和时间,它是从1970年1月1日起的毫秒数。
-- -------------------- ---- ------- ----- ---------- - - -------------- -------------- -------------- -------------- -------------- -------------- -------------- ------------- -
接下来,我们需要创建一个函数来将时间戳按照每分钟进行分类。我们将使用Object.fromEntries()
函数来实现这个功能。
-- -------------------- ---- ------- -------- ------------------------- - ----- ------ - -- ---------------------------- -- - ----- ---- - --- --------------- ----- ------ - ----------------- ----- --- - ---------------------------------------- - -------------------- ----------------------------- -- -------------- - ----------- - -- - --------------------------- -- ------ ------ -
在上面的代码中,我们首先创建了一个空对象groups
,用于存储分类后的时间戳。然后我们将时间戳数组中的每个时间戳转化为一个日期对象,并取得该日期对象的分钟数。接下来,我们将日期对象的年月日、小时和分钟作为键名key
,将时间戳放入该键名所对应的数组中。最后,我们返回分类后的结果。
示例代码
完整的示例代码如下:
-- -------------------- ---- ------- ----- ---------- - - -------------- -------------- -------------- -------------- -------------- -------------- -------------- ------------- - -------- ------------------------- - ----- ------ - -- ---------------------------- -- - ----- ---- - --- --------------- ----- ------ - ----------------- ----- --- - ---------------------------------------- - -------------------- ----------------------------- -- -------------- - ----------- - -- - --------------------------- -- ------ ------ - --------------------------------------
输出结果为:
{ "2020-7-28 1:1": [1595936073000], "2020-7-28 1:2": [1595936081000, 1595936088000, 1595936096000], "2020-7-28 1:5": [1595936110000, 1595936115000], "2020-7-28 1:8": [1595936132000], "2020-7-28 1:9": [1595936141000] }
总结
在本实例中,我们使用ES9中的Object.fromEntries()
函数将时间戳数组按照每分钟进行分类,这为我们处理时间序列数据提供了便利。该函数的应用不仅仅局限于时间序列数据,还可用于任何需要将数组转换为对象的情况。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6457ae3e968c7c53b0a4e33f