1js 统计一个字符串出现频率最高的字母 / 数字
- let str = 'asdfghjklaqwertyuiopiaia';
- const strChar = str => {let string = [...str],
- maxValue = '',
- obj = {},
- max = 0;
- string.map(value => {
- obj[value] = obj[value] == undefined ? 1 : obj[value] + 1
- if (obj[value] > max) {
- max = obj[value]
- maxValue = value
- }
- })
- return maxValue;
- }
- console.log(strChar(str)) // a
2 数组去重
- 2.1 map
- let arr = ['1', '2', '3', '1', 'a', 'b', 'b']
- const unique = arr => {
- let obj = {}
- arr.map(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']
3 翻转字符串
- let str ="Hello Dog";
- const reverseString = str =>{
- return [...str].reverse().join("");
- }
- console.log(reverseString(str)) // goD olleH
4 数组中最大差值
- 4.1map
- let arr = [23, 4, 5, 2, 4, 5, 6, 6, 71, -3];
- const difference = arr => {
- let min = arr[0],
- max = 0;
- arr.map(value => {
- if (value < min) min = value
- if (value > max) max = value
- })
- return max - min ;
- }
- console.log(difference(arr)) // 74
4.2max() 方法
- let arr = [23, 4, 5, 2, 4, 5, 6, 6, 71, -3];
- const difference = arr => {
- let max = Math.max(...arr);
- let min = Math.min(...arr);
- return max - min ;
- }
- console.log(difference(arr)) // 74
5 不借助临时变量, 进行两个整数的交换
5.1
输入 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.2 数组解构
- let a = 2,
- b = 3;
- [b,a] = [a,b]
- console.log(a,b) // 3 2
6 排序 (从小到大)
6.1 冒泡排序
- let arr = [43, 32, 1, 5, 9, 22];
- const sort = arr => {
- let res = []
- let temp
- arr.map((v, i) => {
- for (var j = i + 1; j < arr.length; j++) {
- if (arr[i] > arr[j]) {
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- }
- }
- })
- return arr
- }
- console.log(sort(arr)) // [1, 5, 9, 22, 32, 43]
结语
持续更新, 持续更新...
错漏之处, 敬请斧正
有更多更好的 js 算法面试题, 还望伙伴们积极推荐
来源: https://juejin.im/post/5a7aaf745188257a5a4c9a39