美文网首页
常见的算法操作

常见的算法操作

作者: 读书的鱼 | 来源:发表于2019-04-21 01:25 被阅读0次
1.字符串中 单词的首字母大写其他字母小写

titleCase("I'm a little tea pot");
转化为
I'm A Little Tea Pot

function titleCase(str) {
  //将所有的字母都转化为小写
  str = str.toLowerCase();
  //字符串转化为数组
  var arr = str.split(" ");

  //创建新数组 并把老数组中每个元素首字符转化为大写,剩下的字符转小写
  var newArr = [];
  for(var i = 0;i<arr.length;i++){
    newArr.push(arr[i].slice(0,1).toUpperCase()+arr[i].slice(1));
  }

  //再将数组转化为字符串用空格隔开
  return newArr.join(" ");
}
2.找出多个数组中的最大数

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
转化为:
[5,27,39,1001]

function largestOfFour(arr) {
  //处理排序问题
  function newSort(a,b){
    return a-b;
  }
  var newArr = [];
  for(var i= 0;i<arr.length;i++){
    //数组的每个子元素数组进行从小到大排序
    var newChildArr = arr[i].sort(newSort);
    //再把排好序的 每个子元素数组中  最后一个值也就是最大值 抛出来 放到新的数组中
    newArr.push(newChildArr[newChildArr.length-1]);
  }
  return newArr;
}
3.检查字符串结尾

confirmEnding("Bastian", "n"); //true
confirmEnding("He has to give me a new name", "me"); //true
confirmEnding("He has to give me a new name", "na") //false

function confirmEnding(str, target) {
  //将字符串拆分为数组
  var arr = str.split(" ");
  //获取数组的最后一个元素
  var lastElement = arr[arr.length-1];
 //截取最后一个元素(目标元素的位数相同个数)  然后和目标元素比较
  if(lastElement.slice(-target.length)===target){
    return true;
  }else{
    return false;
  }
}

ps:截取最后几位可以用
var string = "abcdefg";
截取最后两位
string.slice(-2);

4.重复输出字符串

repeat("-", 3) 应该返回 "---".
repeat("abc", 3) 应该返回 "abcabcabc".
repeat("abc", 4) 应该返回 "abcabcabcabc".

function repeat(str, num) {
  //将重复字符串放到一个新的数组中
  var newArr = [];
  for(var i=0;i<num;i++){
    newArr.push(str);    
  }
 //将数组转化为字符串
  return newArr.join("");
}
5.数组分割

chunk(["a", "b", "c"], 2);
转化为:
[["a","b"],["c"]]

chunk([1, 2, 3,4], 2);
转化为:
[[1,2],[3,4]]

function chunk(arr, size) {
  //定义一个空的数组
  var newArr = [];
 
  for(var i = 0;i<Math.ceil(arr.length/size);i++){
    var start = i * size;
    var end = start+size;
    newArr.push(arr.slice(start,end));
  }
  return newArr;
}

chunk(["a", "b", "c"], 2);
5.

where([40, 60], 50);
50添加到数组中,排序,然后找出50所在的索引值 //1

function where(arr, num) {
  arr.push(num);
  arr.sort(function(a,b){return a-b;});
  return   arr.indexOf(num);
}

where([40, 60], 50);
7.凯撒密码
图解

rot13("SERR PBQR PNZC"); // 你可以修改这一行来测试你的代码
转化后:
FREE CODE CAMP

function rot13(str) { // LBH QVQ VG!
  var newArr = [];
  for(var i=0;i<str.length;i++){
    var numbers = str.charCodeAt(i);
    if(numbers<65||numbers>90){
      newArr.push(String.fromCharCode(numbers));
    }else if(numbers>77){
      newArr.push(String.fromCharCode(numbers-13));
    }else{
      newArr.push(String.fromCharCode(numbers+13));
    }
  }
  return newArr.join("");
}

相关文章

  • 常见的算法操作

    1.字符串中 单词的首字母大写其他字母小写 titleCase("I'm a little tea pot");转...

  • 位操作的常见算法

    一、异或^1、交换两个数:'''cvoid Swap(int &a, int &b){if (a != b){a ...

  • jdk中数组排序方法解析

    众所周知,排序算法是一个非常常见的算法。排序操作是程序经常面对的操作。排序算法有很多种。就是太多种了,可能大家都不...

  • 算法复杂度速查表

    方便大家快速计算常见算法的时间和空间的大O复杂度 图例 数据结构操作 数组排序算法 图操作 堆操作 大O复杂度图表

  • all

    算法与数据结构 常见算法类型 排序算法(冒泡、插入、选择、快排、希尔、堆排、归并、桶排、基数、计数)、字符串操作、...

  • 常用算法Big-O复杂度介绍(时间和空间复杂度)

    常用函数Big-O示意图 常见数据结构操作时间、空间复杂度 常见排序算法时间、空间复杂度

  • 数据结构-Hash常见操作实践

    Hash常见操作实践 目录介绍 01.什么是哈希算法 02.哈希算法的应用 03.安全加密的场景 04.唯一标识的...

  • 链表算法面试问题看我就够了!(转载)

    1 引言 单链表的操作算法是笔试面试中较为常见的题目。本文将着重介绍平时面试中常见的关于链表的应用题目。 本文大概...

  • 数据结构与算法

    常见排序算法 堆排序 算法大全 算法大汇总

  • 五大IO模型

    对程序员而言,I/O操作是程序中最常见的操作之一。比如说磁盘文件的读写、数据的网络传输等等。程序=数据结构+算法,...

网友评论

      本文标题:常见的算法操作

      本文链接:https://www.haomeiwen.com/subject/akzrgqtx.html