首页 > 编程语言 >基础算法脚本

基础算法脚本

时间:2022-09-27 11:11:12浏览次数:51  
标签:脚本 return words currentLength 基础 length 算法 let str

将字符串翻转:

function reverseString(str) {
  //法一:
  /*
  let arr=[];
  for(let i=0;i<str.length;i++){
    arr.unshift(str[i]);
  }
  //console.log(arr);//[ 'o', 'l', 'l', 'e', 'h' ]
  str='';
  for(let i=0;i<arr.length;i++){
    str=str+arr[i];
  }
  //console.log(str);//olleh
  return str;
  */
  //法二:
  let reversedStr = "";
  for (let i = str.length - 1; i >= 0; i--) {
    reversedStr += str[i];
  }
  //法三:
  /* 
  return str
    .split("")
    .reverse()
    .join("");
  */
  return reversedStr;
}
//调用:
console.log(reverseString("hello")); //olleh
View Code

求整数的阶乘:

只有大于或等于零的整数才能计算阶乘,阶乘是所有小于或等于n的正整数的乘积,简写为n!,例如:5!=1 * 2 * 3 * 4 * 5 = 120

function factorialize(num) {
  //法一:
  /*let product = 1;
  for (let i = 2; i <= num; i++) {
    product *= i;
  }
  return product;*/
  //法二:
  /*if (num === 0) {
    return 1;
  }
  return num * factorialize(num - 1); */
  //法三:
  return num < 0 ? 1 :
    new Array(num)
      .fill(undefined)
      .reduce((product, _, index) => product * (index + 1), 1); 
}

//法四:
/*function factorialize(num, factorial = 1) {
  if (num === 0) {
    return factorial;
  } else {
    return factorialize(num - 1, factorial * num);
  }
}*/

console.log(factorialize(5)); //120
View Code

查找字符串中最长的单词,返回其长度:

function findLongestWordLength(str) {
  //法一:
  //return Math.max(...str.split(" ").map(word => word.length));
  //法二:
  //return str.split(' ').reduce(function(longest, word) {return Math.max(longest, word.length)}, 0);
  //法三:
  /*let words = str.split(' ');
  let maxLength = 0;

  for (let i = 0; i < words.length; i++) {
    if (words[i].length > maxLength) {
      maxLength = words[i].length;
    }
  }
  return maxLength;*/
  //法四:
  /*const words = str.split(" ");
  if (words.length == 1) {
    return words[0].length;
  }
  return Math.max(words[0].length,findLongestWordLength(words.slice(1).join(" ")));*/
  //法五:
let longestLength = 0;
let currentLength = 0;
for (let i = 0; i < str.length; i++) {
  if (str[i] === " ") {
    if (currentLength > longestLength) longestLength = currentLength;
    currentLength = 0;
  } else {
    currentLength++;
  }
}
if (currentLength > longestLength) {
  longestLength = currentLength;
}
return longestLength;

}
//调用:
console.log(findLongestWordLength("The quick brown fox jumped over the lazy dog")); //6
View Code

查找数组中最大的数字:

标签:脚本,return,words,currentLength,基础,length,算法,let,str
From: https://www.cnblogs.com/168-h/p/16733607.html

相关文章

  • Go语言基础之切片
    引子因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。例如:funcarraySum(x[3]int)int{ sum:=0 for_,v:=rangex{ sum=sum+......
  • Vue+Echarts--父组件+子组件(基础)
    基本的思路就是:在父组件获取后端数据,然后传到子组件,子组件创建图表进行展示。1、获取后端数据 2、将数据传给子组件,并将子组件引入到父组件  3、子组件接收数......
  • 学习:网络基础知识 https安全性总结,http和https对比
    加密----秘钥;身份认证----证书(申请)==双向认证;完整性保护----哈希算法--计算一个hash值验证消息的完整性,对比客户端发来的摘要信息来对比自身计算的摘要信息保证数据没......
  • cesium基础组件的显示与隐藏
    方法一/*通过css控制组件显隐及位置*/.cesium-viewer-toolbar,/*右上角按钮*/.cesium-viewer-animationContainer,/*左下角动画控件*/.......
  • 学习:网络基础知识-Https协议详解
    HTTP协议问题:发送数据都是明文的;如果第三者窃听截取数据包伪装成客户端与服务器进行交互服务器没有认证机制来确定客户端的身份客户端也没有任何机制确认服务器的身份;没......
  • C# 基础之PDB文件用途探索
    C#基础之PDB文件用途探索1、运行项目时生成,会生成DLL文件,同时会创建PDB文件2、PDB文件:ProgramDatabaseFile,程序数据库文件3、做如下测试,假如有一个test.dll文件,文......
  • MySQL尚硅谷-宋红康 基础补缺 days01
    基础部分查漏补缺:1.SQL99语法新特性1.1自然连接(NATURAL JOIN)相当于SQL92中的等值连接,会自动查询两张表中所有字段名相同的字段,然后做等值连接;......
  • 学习:网络基础知识 HTTP协议之响应报文
    响应报文-服务器回应给客户端的报文响应行+响应头部+空一行(格式代表响应头部结束)+响应体(服务器真真要返回的页面内容)   可以百度HTTP状态码可以看到详细的介绍响......
  • 计算空间物体包围球的两种算法实现_charlee44的博客
    1.概述在进行二维空间几何运算的之前,往往会用包围盒进行快速碰撞检测,从而筛掉一些无法碰撞到的可能。而在三维中,比较常用的就是包围球了。当然,如何计算包围球是一个问题......
  • 学习:网络基础知识 HTTP协议之请求报文
    HTTP协议和安全版HTTPS协议HTTP(HyperTextTransferProtocol)超文本传输协议HTTP协议是基于TCP协议默认端口是80功能:用来规定客户端和服务端的数据传输格式特点:基......