利用 ES11 中 Object [fromEntries] 解析 Lighthouse 报告数据

Lighthouse 是 Google 出品的一款用于评估网站性能的工具,它能够评估网站的性能、可访问性、最佳实践、SEO 等方面的指标。Lighthouse 评估完成后,它会生成一个 JSON 格式的报告,其中包含了评估指标的详细数据。然而,这个报告数据的结构比较复杂,不太容易解析,因此需要一些技巧来解析它。

本文将介绍如何利用 ES11 中的 Object [fromEntries] 方法来解析 Lighthouse 报告数据,帮助前端开发者更好地理解 Lighthouse 报告数据,并从中获取有用的信息。

Object [fromEntries] 方法简介

ES11 中新增加了一个 Object [fromEntries] 方法,它可以将一个由键值对组成的数组转换为一个对象。这个方法的语法如下:

其中,iterable 是一个由键值对组成的数组,例如:

使用 Object [fromEntries] 方法可以将这个数组转换为一个对象:

解析 Lighthouse 报告数据

Lighthouse 报告数据是一个由多个对象组成的数组,每个对象中包含了评估指标的详细数据。其中,每个对象的 keys 属性表示了这个对象中所有属性的名称,而 values 属性则表示了这个对象中所有属性的值。

我们可以利用 Object [fromEntries] 方法将这个对象中的 keys 和 values 转换为一个对象。具体代码如下:

这段代码中,我们将 Lighthouse 报告数据中每个对象的 id 和 score 属性提取出来,利用 map 方法将它们转换为键值对的数组,最后使用 Object [fromEntries] 方法将它们转换为一个对象。

示例代码

下面是一个完整的示例代码,它可以将 Lighthouse 报告数据中的性能指标和可访问性指标提取出来,并输出到控制台上:

这段代码中,我们首先定义了一个数组 categories,它包含了我们想要提取的指标名称。然后,我们使用 forEach 方法遍历 categories 数组,对于每个指标,我们使用 find 方法找到对应的对象,然后提取出它的 score.details.items 属性,将它们转换为键值对的数组,最后使用 Object [fromEntries] 方法将它们转换为一个对象。最终,我们将所有指标的对象存储在 result 对象中,并输出到控制台上。

总结

利用 ES11 中的 Object [fromEntries] 方法可以帮助我们更方便地解析 Lighthouse 报告数据,从中获取有用的信息。本文介绍了如何使用 Object [fromEntries] 方法来解析 Lighthouse 报告数据,并给出了示例代码。希望这篇文章能够帮助前端开发者更好地理解 Lighthouse 报告数据,并从中获取有用的信息。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6559553fd2f5e1655d3c27f5


纠错
反馈