Javascript收集js基础知识总结

js开发 面试常考基础算法题

2018-10-07  本文已影响47人  空无一码

js 开发面试常考基础算法题

1 不需要借助第三个临时变量,实现两个变量的交换

function swap(a,b){
  b = b - a;
  a = a + b;
  b = a - b;
  return [a,b];
}

2 确保字符串的每个单词首字母都大写,其余部分小写

function titleCase(str) {
  var lstr = str.toLowerCase().split(' ');
  for(var i = 0 ; i < lstr.length; i++) {
    lstr[i] = lstr[i][0].toUpperCase() + lstr[i].substring(1, lstr[i].length);
  }
  var res = lstr.join(' ');
  return res;
}
titleCase("good night"); // Good Night

3 找出正整数 数组的最大差值

function getMaxPro(arr){
  var min = arr[0];
  var max = 0;
  for (var i=0;i<arr.length;i++){
    var current = arr[i];
    min = Math.min(min, current);
    var res = currenr - min;
    max = Math.max(max, res);
  }
  return max;  
}

4 清除字符串前后的空格(兼容所有浏览器)

function trim(str) {
  if (str & typeof str === "string") {
    return str.replace(/(^s*)|(s*)$/g, ''); //去除前后空白符
  }
}

5 去掉一组整型数组中重复的值

let unique =  function(arr){
  let hash={};
  let data=[];
  for (let i=0;i < arr.length; i++){
    if (!hash[arr[i]])  {
      hash[arr[i]] = true;
      data.push(arr[i]);
    }      
  }
  return data
}

6 翻转字符串

function reverseString(str){    
  return str.split('').reverse().join('');  
}

7 找到提供的句子中最长的单词,并计算它的长度。

function findLongestString(str){
  var arr = str.split(' '); 
  var arrSort = arr.sort(function (a,b) {      
    return b.length - a.length;
  });
  return [arrSort[0], arrSort[0].length];
}

8 截断一个字符串,如果字符串的长度比指定的参数num长,则把多余的部分用...来表示

function truncate(str, num){
  var trStr = str.slice(0, num);
  if (trStr.length > num) {                 
    return trStr.concat('...');
  } else {
    return str;
  }
}

9 判断一个字符串中出现次数最多的字符,统计这个次数

funcion findMaxStrCount(str) {
  var countObj = {};
  var max = '';
  for(var i = 0; i < str.length; i++) {
    var cur = str[i];
    if(!countObj[cur]) {
      countObj[cur] = 0;
    } 
    countObj[cur]++;
    if(max === '' || countObj[cur] > countObj[max]) { max = cur; }
  }
  return [max, countObj[max]];
}

10 快速排序(Quick Sort)

快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:

var quickSort = function(arr) {
 if (arr.length <= 1) { return arr; }
 var pivotIndex = Math.floor(arr.length / 2);
 var pivot = arr.splice(pivotIndex, 1)[0];
 var left = [];
 var right = [];
 for (var i = 0; i < arr.length; i++){
  if (arr[i] < pivot) {
   left.push(arr[i]);
  } else {
   right.push(arr[i]);
  }
 }
 return quickSort(left).concat([pivot], quickSort(right));
};
上一篇 下一篇

猜你喜欢

热点阅读