数组频率统计
创建一个对象,其中数组的唯一值作为键,出现频率作为值。使用 Array.prototype.reduce() 将唯一值映射到对象的键,每次遇到相同的值时都会使频率加1。
统计数组中唯一值的频率很容易,但如果数据经常发生变化频率就需要重新计算。为此我们最好创建自定义数据结构来存储数据。该数据结构将能够跟踪其包含的值的频率并在需要更新它们。以下是实现此类数据结构的方法:
通过继承来利用内置的 Map 类。
扩展以抛出错误,防止破坏添加到数据结构中的数据。
定义一个
add()
方法,该方法将接收一个值并在数据结构中增加其计数,不存在则设为1。扩展以减少数据结构中存在的值的计数。值为1时直接删除。
定义一个
sorted()
方法,该方法将返回按频率排序的值数组。 使用按频率对值进行排序,使用返回值。ascending
FrequencyMap
的数据结构,它继承了内置的Map