1、js 统计一个字符串出现频率最高的字母/数字

let str = 'asdfghjklaqwertyuiopiaia';
const strChar = str => {let string = [...str],maxValue = '',obj = {},max = 0;string.forEach(value => {obj[value] = obj[value] == undefined ? 1 : obj[value] + 1if (obj[value] > max) {max = obj[value]maxValue = value}})
return maxValue;
}
console.log(strChar(str))    // a
复制代码

2、数组去重

2.1、forEach
let arr = ['1', '2', '3', '1', 'a', 'b', 'b']
const unique = arr => {let obj = {}arr.forEach(value => {obj[value] = 0})return Object.keys(obj)
}
console.log(unique(arr))  // ['1','2','3','a','b']
复制代码
2.2、filter
let arr = ['1', '2', '3', '1', 'a', 'b', 'b']
const unique = arr => {return arr.filter((ele, index, array) => {return index === array.indexOf(ele)})
}
console.log(unique(arr))  // ['1','2','3','a','b']
复制代码
2.3、set
let arr = ['1', '2', '3', '1', 'a', 'b', 'b']
const unique = arr => {return [...new Set(arr)]
}
console.log(unique(arr))  // ['1','2','3','a','b']
复制代码
2.4、reduce
let arr = ['1', '2', '3', '1', 'a', 'b', 'b']
const unique = arr.reduce((map, item) => {map[item] = 0return map
}, {})
console.log(Object.keys(unique))  // ['1','2','3','a','b']
复制代码

3、翻转字符串

let str ="Hello Dog";
const reverseString = str =>{return [...str].reverse().join("");
}
console.log(reverseString(str))   // goD olleH
复制代码

4、数组中最大差值

4.1、forEach
let arr = [23, 4, 5, 2, 4, 5, 6, 6, 71, -3];
const difference = arr => {let min = arr[0],max = 0;arr.forEach(value => {if (value < min) min = valueif (value > max) max = value})return max - min ;
}
console.log(difference(arr))  // 74
复制代码
4.2、max、min
let arr = [23, 4, 5, 2, 4, 5, 6, 6, 71, -3];
const difference = arr => {let max = Math.max(...arr),min = Math.min(...arr);return max - min ;
}
console.log(difference(arr)) // 74
复制代码

5、不借助临时变量,进行两个整数的交换

5.1、数组解构
let a = 2,b = 3;[b,a] = [a,b]console.log(a,b)   // 3 2
复制代码
5.2、算术运算(加减)

输入a = 2,b = 3,输出 a = 3,b = 2

let a = 2,b = 3;
const swop = (a, b) => {b = b - a;a = a + b;b = a - b;return [a,b];
}
console.log(swop(2,3)) // [3,2]
复制代码
5.3、逻辑运算(异或)
let a = 2,b = 3;
const swop = (a, b) => {a ^= b; //x先存x和y两者的信息b ^= a; //保持x不变,利用x异或反转y的原始值使其等于x的原始值a ^= b; //保持y不变,利用x异或反转y的原始值使其等于y的原始值return [a,b];
}
console.log(swop(2,3)) // [3,2]
复制代码

6、排序 (从小到大)

6.1、冒泡排序
let arr = [43, 32, 1, 5, 9, 22];
const sort = arr => {let res = []arr.forEach((v, i) => {for (let j = i + 1; j < arr.length; j++) {if (arr[i] > arr[j]) {[arr[i],arr[j]] = [arr[j],arr[i]]}}})return arr
}
console.log(sort(arr))  // [1, 5, 9, 22, 32, 43]
复制代码

结语

持续更新,持续更新...

错漏之处,敬请斧正

有更多更好的js算法面试题,还望伙伴们积极推荐

转载于:https://juejin.im/post/5a7aaf745188257a5a4c9a39

常见的js算法面试题收集,es6实现相关推荐

  1. 一道JS算法面试题——冒泡、选择排序

    JS排序算法 基础排序 冒泡排序 选择排序 面试题 基础排序 今天学习了数据结构,遇到了一个关于算法的面试题,然后从中想到了冒泡排序和选择排序对一个数组从小到大的排序的方法,今天分享给大家,顺便记录下 ...

  2. java常见算法面试题

    java常见算法面试题 Java的冒泡排序,快速排序,归并排序,计数排序,二分查找法 1.斐波那契数列 1.斐波那契数列又叫黄金分割和兔子数列 :1.1.2.3.5.8.13.21.34.-- 在数学 ...

  3. leetcode常见经典算法面试题及答案汇总

    精心整理了leetcode常见经典算法面试题及答案,实现语言为python和c++,整理在这里主要是为了面试前复习使用,希望对您有所帮助,题目比较多建议您先收藏 题目:1.求缺失的第一个正数;2. 字 ...

  4. 【2021最新版】数据结构+算法面试题总结(9+20道题含答案解析)

    文章目录 1.栈(stack) 2.队列(queue) 3.链表(Link) 4.散列表(Hash Table) 5.排序二叉树 6. 前缀树 7.红黑树 8.B-TREE 9.位图 算法面试题 1. ...

  5. prim算法_历时两月,终拿字节跳动offer,算法面试题分享「带答案」

    欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享! Java架构筑基​zhuanlan.zhihu.com Java架构筑基--专注于Java技术的研究与分享! 后续文章 ...

  6. 66 道前端算法面试题附思路分析助你查漏补缺

    大家好,我是漫步. 今天来分享一篇干货,前端关于算法的分析不多,下文列举了66道前端算法面试题,希望对你有所帮助. 作者:Eno_Yao https://segmentfault.com/a/1190 ...

  7. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  8. 现实中的算法面试题(已拿Offer)赚到了,赚到了

    算法面试题 阅读目录 写在前面 算法百科 算法题目 参考答案 博客总结 博客前言 有提到分享一下面试题,最近也是才能新公司入职没多久,忙着熟悉环境,加上前不久出去玩了一趟(顺便写了篇游记,感兴趣的可以 ...

  9. 一道亚马逊算法面试题的情景分析

    阅读博客的朋友可以观看视频: http://study.163.com/course/courseMain.htm?courseId=1002942008 我们聚焦于一道亚马逊的算法面试题,通过分析该 ...

最新文章

  1. InnoDB和MyISAM区别
  2. valgrind安装使用
  3. ASP.NET MVC 1.0 RC 版发布了【转】
  4. mysql数据库运行远程用户访问不了_MySQL数据库远程访问权限如何打开(两种方法)...
  5. 程序的加载和执行(一)——《x86汇编语言:从实模式到保护模式》读书笔记21
  6. 数据库主键设计之思考(转)
  7. 【转】log4net使用详解
  8. 利用 Hexo + Github 搭建自己的博客
  9. 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
  10. c++ static静态变量、静态函数
  11. 互联网敏捷 Scrum 和项目管理
  12. 华为连接wifi显示wifi未连接服务器,华为手机连接WIFI但是无法上网怎么解决
  13. Windows 开机自动拨号上网
  14. DAVIS Driving Dataset 2020 (DDD20) 【转载】
  15. 项目轮播图功能实现和导航栏的实现
  16. 如何在Revit中引入WPF界面(通俗易懂)
  17. Tableau自定义分类调色板
  18. a-za-z-9_P-ZA的完整形式是什么?
  19. 微信小程序 # 高仿解忧杂货店小程序首页
  20. 中医治感冒方法的整理(待完善)

热门文章

  1. Docker-compose 安装与基本使用(四)
  2. 问题反馈模板_使用此模板可获得更好,更有价值的UX反馈
  3. 用JS轻松实现一个录音、录像、录屏工具库
  4. 若川的2016年度总结,毕业工作
  5. 《大话数据结构》读后总结(九)
  6. SQL根据细粒度为天的查询
  7. MindFusion Pack for ASP.NET发布v2013.R2
  8. 鄙人之斗,读IT之洋(1)
  9. 渲染终极者 finalRender R3.5 SE for 3ds max/design 2009/2010/2011 32位/64位 汉
  10. 怎样让WinForms下DataGrid可以像ASP.NET下的DataGrid一样使用自定义的模板列