JS获取数组中出现次数最多及第二多元素的方法

获取数组中出现次数最多及第二多元素的方法可以用以下步骤实现:

步骤一:统计数组中各个元素出现的次数

利用 JavaScript 中的对象(对象是使用 key-value 键值对存储,可高效查找和计数)统计数组中各个元素出现的次数,代码如下:

function countOccurrences(arr) {
  const counts = {};
  for (let i = 0; i < arr.length; i++) {
    const item = arr[i];
    counts[item] = counts[item] ? counts[item] + 1 : 1;
  }
  return counts;
}

步骤二:对各个元素出现的次数进行排序

将步骤一中统计出的元素及其出现次数提取出来,并按出现次数从大到小进行排序,代码如下:

function sortOccurrences(counts) {
  const items = Object.keys(counts).map(item => {
    return { item, count: counts[item] };
  });
  items.sort((a, b) => b.count - a.count);
  return items;
}

步骤三:获取出现次数最多及第二多的元素

将步骤二中按出现次数排序后的数组中的第一及第二个元素取出即可得到出现次数最多及第二多的元素,代码如下:

function getMostFrequentItems(arr) {
  const counts = countOccurrences(arr);
  const items = sortOccurrences(counts);
  return [items[0].item, items[1].item];
}

其中,getMostFrequentItems 函数即为本攻略所描述的 “JS获取数组中出现次数最多及第二多元素的方法”。

示例如下:

const arr = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple'];
console.log(getMostFrequentItems(arr)); // [ 'apple', 'banana' ]

const arr2 = ['cat', 'dog', 'dog', 'fish', 'fish', 'fish', 'horse'];
console.log(getMostFrequentItems(arr2)); // [ 'fish', 'dog' ]

上述代码分别输出了数组 arrarr2 中出现次数最多及第二多的元素。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS获取数组中出现次数最多及第二多元素的方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQuery元素属性操作实例(设置、获取及删除元素属性)

    jQuery元素属性操作实例(设置、获取及删除元素属性) 在jQuery中,我们可以通过一系列的方法来操作HTML元素的属性,包括设置、获取以及删除元素属性,本文将详细介绍这些操作的方法和示例。 元素属性设置 jQuery中有两种方式可以设置元素属性,分别是使用“attr()”和“prop()”方法。两者的区别在于,前者用于设置HTML元素的自定义属性,后者…

    jquery 2023年5月29日
    00
  • 基于jquery实现九宫格拼图小游戏

    感谢您的询问。以下是基于 jQuery 实现九宫格拼图小游戏的完整攻略: 一、准备工作 创建 HTML 页面,并在页面中引入 jQuery 库。 在 HTML 页面中添加一个九宫格拼图小游戏的容器,例如: <div id="game"></div> 在 CSS 文件中为九宫格容器添加样式,包括宽度、高度、边框等,并…

    jquery 2023年5月28日
    00
  • jQuery UI Autocomplete disable() 方法

    jQuery UI 的 Autocomplete 组件提供了一个 disable() 方法,该方法用于禁用 Autocomplete 组件。在本教程中,我们将详细介绍 Autocomplete 的 disable() 方法的使用方法。 disable() 方法基本语法如下: $( ".selector" ).autocomplete( &…

    jquery 2023年5月11日
    00
  • jQWidgets jqxGrid gotonextpage()方法

    以下是关于“jQWidgets jqxGrid gotonextpage()方法”的完整攻略,包含两个示例说明: 方法简介 jqxGrid 控件的 gotonextpage() 方法用于将 jqxGrid 控件的当前页码设置为下一页。该方法的语法如下: $("#jqxGrid").jqxGrid(‘gotonextpage’); 在上述语…

    jquery 2023年5月10日
    00
  • 如何使用jQuery从JSON对象中选择值

    当我们处理 JSON 数据时,通常会使用 JavaScript 库来简化这个过程。jQuery 作为最流行的 JavaScript 库之一,提供了很多方法来处理 JSON 数据。下面是使用 jQuery 从 JSON 对象中选择值的完整攻略: 第一步:获取JSON数据并解析 首先,我们需要使用 jQuery 的 AJAX 方法或其他方法从网络或本地文件中获取…

    jquery 2023年5月12日
    00
  • jQWidgets jqxMenu autoOpenPopup 属性

    以下是关于 jQWidgets jqxMenu 组件中 autoOpenPopup 属性的详细攻略。 jQWidgets jqxMenu autoOpenPopup 属性 jQWidgets jqxMenu 组件的 autoOpenPopup 属性用于设置菜单是否在鼠标悬停时自动打开弹出菜单。该属性默认值为 false,表示菜单不自动打开弹出菜单。 语法 $…

    jquery 2023年5月12日
    00
  • jQuery 3.0中存在问题及解决办法

    jQuery 3.0中存在问题及解决办法 jQuery 3.0是最新版本的jQuery库,但在使用过程中也存在一些问题。本文将介绍这些问题及其解决办法,希望对使用jQuery 3.0的开发者有所帮助。 1. jQuery 3.0中的问题 1.1. 移除了部分API jQuery 3.0在移除部分API方面,比之前版本更加彻底。其中最大的变化是删除了jQuer…

    jquery 2023年5月27日
    00
  • 如何使用jQuery Mobile制作垂直选择控制组

    以下是使用jQuery Mobile制作垂直选择控制组的完整攻略。 1. 准备工作 使用jQuery Mobile制作垂直选择控制组需要以下几个组件: fieldset:用于将相似控件分组。 label:用于描述控件。 input:用于输入或选择数据。 在准备这些组件时需要注意以下要点: fieldset中的legend标签可用于显示标题或介绍。 input…

    jquery 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部