算法练习 找到数组中出现次数最多的数

news/2024/7/11 1:09:46 标签: javascript, 前端, es6

思路:
1.对象可以自定义key,可以把要查询的数组离得每一个元素当成一个key保存起来,
2.判断如果key一样的话就(说明这个数组里面已经有了这个元素)就让他+1,如果key不一样的话(说明这个对象没有这个元素)就给他赋值为1,
3.接下来就可以遍历这个数组了,那么对象的每个key就是要查询数组的元素,每个key后面的值就是这个元素在原数组中出现的位置,
4. 定义一个变量max用于记录出现次数最多的元素
5. ,遍历得到的对象,每一次遍历都和max作比较,如果大于max就把他的key(就是要查询数组的元素)赋值给max,这样得到的max就是值(元素出现的次数)最多的key(原数组的元素)

javascript">    //找出数组中出现最多的
    const str=[23,56,852,45,32,125,235,121,12,12,23,32,12,55]
    let max=0
  let res={}
  str.forEach((a)=>{
     res[a]?res[a]++:res[a]=1
   })

   for (let i in res){
    if(res[i]>max){
       max=i
   }
  }
  console.log(res);
  console.log(max);
  console.log(res[max]);

在这里插入图片描述


http://www.niftyadmin.cn/n/1371621.html

相关文章

QT的QObject禁用拷贝构造和赋值运算符原因

QT的QObject禁用拷贝构造和赋值运算符原因 QObject禁用复制构造函数和赋值运算符源于它的性质: 具有唯一的QObject :: objectName。 Qt对象可以拥有自己的名称,objectName属性保存对象的名称。 那么复制一个Qt对象,如何处理新的对象的名字&am…

算法练习 找出素组中第三大的

思路1:这个思路太复杂了,运行起来耗性能,就是找到数组中最大的把他踢出去形成一个新的数组,再在新的数组中把最大的踢出去,形成一个新的数组,然后再找最大的就是第三个大的,不仅把方法写死了而且…

浏览器渲染HTML页面

构建DOM树 构建CSSOM 构建DOM和CSSOM是同时进行的

面试题:预编译

每次进行变量提升和函数提升时他们都要进入一个栈空间(上下文栈) 变量会先入栈函数会后入栈,出栈的时候就是函数先出栈,所以定义的函数会覆盖掉定义的变量

面试题:手写PromiseAll

function MypromisrAll(list) {return new Promise((reslove, reject) > {let reslist []let num 0//遍历给的数组并且执行他们的then获取他们返回的信息list.forEach(item > {item.then((res) > {reslist.push(res)numif (num list.length) {reslove(reslist)}})}…

ES6新增语法 Symbol数据类型

转载https://blog.csdn.net/zyz00000000/article/details/106922044 一、Symbol类型 symbol 是一种基本数据类型 (primitive data type)。每个从Symbol()返回的symbol值都是唯一的。 不支持语法:“new Symbol()”:从 ECMAScrip…

LeetCode-513. 找树左下角的值

LeetCode-513. 找树左下角的值 难度:中等 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 class Solution { public:/*1.递归方法//最底层-->最大深度-->用一个整形记录深度//最左边--…