js中级脚本算法

2023-05-16

1区间求值算法挑战

function sumAll(arr) {
   if(arr[0]>arr[1]){
     var m=arr[1];
     arr[1]=arr[0];
     arr[0]=m;
   }
   var sum=0;
   for(var i=arr[0];i<=arr[1];i++){
       sum+=i;
   }
return sum;
}

2找出数组间差异算法挑战

function diff(arr1, arr2) {
var newArr = [];
var newArr2=[];
newArr=arr1.filter(function(item){

      return  arr2.indexOf(item)<0;
})
newArr2=arr2.filter(function(item){
    return arr1.indexOf(item)<0;
})
newArr=newArr.concat(newArr2);
return newArr;
}

3.阿拉伯数字转罗马数字

function convert(num) {
   var a=[["","I","II","III","IV","V","VI","VII","VIII","IX"],  
                          ["","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"],  
                          ["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"],
                           ["","M","MM","MMM"]];  
  var i=a[3][Math.floor(num/1000)];
  var j=a[2][Math.floor(num%1000/100)];
  var k=a[1][Math.floor(num%100/10)];
  var l=a[0][num%10];
  return  i+j+k+l;
}

4对象搜索算法挑战

function where(collection, source) {
var arr = [];
// What's in a name?
var curr_key="";
for (var key in source) {
    console.log(key);     //获取key值
    console.log(source[key]); //获取对应的value值
    curr_key=key;
}
arr=collection.filter(function(item){
    return item[curr_key]==source[curr_key];
})
return arr;
}

5.字符串查询替换算法挑战

function myReplace(str, before, after) {
  var a=str.indexOf(before);
  if(65<=str[a].charCodeAt()&&str[a].charCodeAt()<=90){
      after=after[0].toUpperCase()+after.slice(1);
  }
  str=str.replace(before, after);
return str;
}

6.字符串移动插入算法挑战

function translate(str) {
    str=str.toLowerCase();
    var yy=['a','e','i','o','u'];
    var num=0;
    if(yy.indexOf(str[0])>=0){
        str+='way';
    }else{
        for(var i=0;i<str.length;i++){
            if(yy.indexOf(str[i])>=0){
             num=i;
            break;
            }

        }
       /* if(num-1>0){
        var str1=str.substr(0,num);  
        }else{
          var str1=str[0];   
        }*/
       var str1=str.substr(0,num); 
        var str2=str.substr(num);
        str=str2+str1+'ay';

    }
return str;
}

7.字符配对算法挑战

function pair(str) {
    str=str.split("");
    var aa=[];
    for(var i=0;i<str.length;i++){
        var bb=[];
        switch (str[i]) {
            case 'A':
                bb.push("A");
                bb.push("T");
                // code
                break;
             case 'T':
                 bb.push("T");
                 bb.push("A");
                break;
             case 'C':
                  bb.push("C");
                  bb.push("G");
                // code
                break;

            default:
                 bb.push("G");
                 bb.push("C");
        }
        aa.push(bb);
    }

return aa;
}

8字符串查询补充算法挑战

function fearNotLetter(str) {
    var flag=undefined;
    for(var i=0;i<str.length-1;i++){
        var num1=str.charCodeAt(i);
        var num2=str.charCodeAt(i+1);
        if(1!=num2-num1){
           var codeNum=num1+1;
           flag=String.fromCharCode(codeNum);
           break;
        }
    }
    return flag;
}

fearNotLetter("abce");

9.输入检查算法挑战

function boo(bool) {
// What is the new fad diet for ghost developers? The Boolean.
if(typeof bool==='boolean'){
    return true;
}else{
    return false;
}
}

boo(true);

10数组去重算法挑战

function unite(arr1, arr2, arr3) {
    var len=arguments.length;
    var itemdemo=arguments[0];
    for(var i=1;i<len;i++){
       arguments[i]=arguments[i].filter(function(item){
            return itemdemo.indexOf(item)<0;
        });
        itemdemo=itemdemo.concat(arguments[i]);
    }
    return itemdemo;
}

11html符号转实体算法挑战

function convert(entity) {
// &colon;&rpar;
    var converHtmlEntities={  
        '&':'&amp;',  
        '<':'&lt;',  
        '>':'&gt;', 
         '\"':'&quot;',
         '\'':'&apos;',
    };  
    return entity.split('').map(function(entity){  
        return converHtmlEntities[entity] || entity;  
    }).join('');  
}

convert("Dolce & Gabbana");

12字符串连接算法挑战

function spinalCase(str) {
// "It's such a fine line between stupid, and clever."
// --David St. Hubbins
str=str.replace(/_|\s+/g,"-");
str=str.replace(/(\B[A-Z])/g,"-$1");
//str=str.replace(/[A-Z]/g,'-');

str=str.toLowerCase();
return str;
}

spinalCase('thisIsSpinalTap');

13斐波纳契奇数求和算法挑战


function sumFibs(num) {
    var sum=2;
    var a = 1;
    var b = 1;
    var c = 0;
     if(num==1){
        return 0; 
     }else if(num==2){
         return 2;
     }else{
         while(c<=num){
         if(c%2!=0){
            sum+=c;
        }
          c = a + b;
          a = b;
          b = c;   
         }

    }
    return sum;
}

14质素求和算法挑战

function isPrime(num){
    // 不是数字或者数字小于2
    if(typeof num !="number" || !Number.isInteger(num)){      // Number.isInterget 判断是否为整数
        return false;
    }

    //2是质数
    if(num == 2){
        return true; 
    }else if(num % 2 == 0){  //排除偶数
        return false;
    }
    //依次判断是否能被奇数整除,最大循环为数值的开方
    var squareRoot = Math.sqrt(num);
    //因为2已经验证过,所以从3开始;且已经排除偶数,所以每次加2
    for(var i = 3; i <= squareRoot; i += 2) {
      if (num % i == 0) {
         return false;
      }
    }
    return true;
}
function sumPrimes(num) {
  var counter = 0;
    for(var i = 2; i <=num; i++){
        if(isPrime(i)){
            counter += i;
        }
    }
    return counter;  
}

15最小公倍数算法挑战

function smallestCommons(arr) {
  arr=arr.sort();  
  var num=arr[0];
for(var i=arr[0]+1;i<=arr[1];i++){
     num*=i/gcd(i,num);
}
  return num;
}
 function gcd(m,n){
  if(m%n===0)return n;
  return gcd(n,m%n);
 }

16数组验证算法挑战

function find(arr, func) {
var num = 0;
var flag=false;
for(var i=0;i<arr.length;i++){
    num=arr[i];
    flag=func(num);
    if(true==flag){
        return num;
        break;

    }
}
return undefined;
}

17数组取值算法挑战

function drop(arr, func) {
// Drop them elements.
var flag=false;
var num=[];
for(var i=0;i<arr.length;i++){

   flag=func(arr[i]);
   if(true==flag){
     num=arr.slice(i);
     break;
   }
}
return num;
}

18数组平铺算法挑战

function steamroller(arr) {
// I'm a steamroller, baby
for(var i=0;i<arr.length;i++){
   if(true==Array.isArray(arr[i])){
     steamroller(arr[i]) ; 
   }else{
       new_arr.push(arr[i]);
   }
}
return new_arr;
}
var new_arr=[];
steamroller([1, {}, [3, [[4]]]]);
方法二:
function steamroller(arr) {
// I'm a steamroller, baby
 var newArr = [];

    for (var i = 0; i < arr.length; i++) {
        if (Array.isArray(arr[i])) {
            // 如果是数组,调用(递归)steamroller 将其扁平化
            // 然后再 push 到 newArr 中
            newArr.push.apply(newArr, steamroller(arr[i]));
        } else {
            // 不是数组直接 push 到 newArr 中
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

19二进制转字符算法挑战

function binaryAgent(str) {
 var arg = str.split(" ");
            var temp, i;
            var newArg = new Array();
            for (i = 0; i < arg.length; i++) {
                temp = String.fromCharCode(parseInt(arg[i], 2));
                newArg.push(temp);
            }
            return newArg.join("");
}

20数组元素判断算法挑战

function every(collection, pre) {
// Is everyone being true?
for(var i=0;i<collection.length;i++){
    var obj=collection[i];
    if(!obj[pre]){
        return false;
    }
}
return true;
}

21函数迭代可选参数算法挑战

function add() {
    var num=arguments.length;
    var sum=0;
    if(1==num&&"number"!=typeof(arguments[0])){
        return undefined;
    }else if(1==num&&"number"==typeof(arguments[0])){
        var curr=arguments[0]
        return function(y){
            if("number"==typeof(y)){
                return curr+y;
            }
        }
    }else{
        if(arguments[num-1])
    for(var i=0;i<num;i++){
        var obj=arguments[i];
        if("number"!=typeof(obj)){
            return undefined;
        }else{
           sum+=obj; 
        }
    }
    return sum;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js中级脚本算法 的相关文章

随机推荐

  • Kubernetes--API Server资源隔离

    Kubernetes的一些功能特性也与公有云提供商密切相关 xff0c 例如 xff1a 负载均衡服务 弹性公网IP 存储服务等 xff0c 具体实现也需要与API Server通信 xff0c 也属于运行商内部重点保障的安全区域 此外 x
  • 公式提取方法

    Mathpix Snipping Tool和MathType配合用法 Mathpix Snipping Tool是一个可以提取数学公式的工具 xff0c 当我们写毕业论文或者结课报告或者参加数学建模等比赛的用到的公式 xff0c 可以用这款
  • (学习unix编程)关于文件流与文件描述符的区别

    文件描述符 xff08 就是整数 xff09 用于在一个进程内唯一的标识打开的文件 这假定了内核能够在用户进程的描述符和内核内部使用的机构之间 xff0c 建立一种关联 xff08 深入linux内核架构 xff09 由于唯一标识进程的结构
  • 2000页kubernetes操作手册,内容详细代码清晰,小白也能看懂

    现如今 xff0c Kubernetes业务已成长为新时代的IT基础设施 xff0c 并成为高级运维工程师 架构师 后端开发工程师的必修技术栈 毫无疑问 xff0c Kubernetes是云计算发展演进的一次彻底革命性的突破 xff0c 只
  • Linux安装nodejs和npm

    最近window系统转向linux系统开发 xff0c linux系统的确适合程序员的开发 作为前端安装了nodejs和npm xff0c 遇到了一些坑 xff0c 赶紧记录下来 第一种安装方法 xff1a 安装nodejs xff1a s
  • 查看core dumped的详细错误原因

    什么是Core Dump Core的意思是内存 Dump的意思是扔出来 堆出来 开发和使用Unix程序时 有时程序莫名其妙的down了 却没有任何的提示 有时候会提示core dumped 这时候可以查看一下有没有形如core 进程号的文件
  • IntelliJ IDEA创建Servlet最新方法 Idea版本2020.2.2以及IntelliJ IDEA创建Servlet 404问题(超详细)

    第一次用IntelliJ IDEA写java代码 xff0c 之前都是用eclipse xff0c 但eclipse太老了 下面为兄弟们奉上IntelliJ IDEA创建Servlet方法 xff0c 写这个的目的也是因为在网上找了很多资料
  • Linux下做C语言/C++开发的一些建议

    相对于Linux下的C C 43 43 开发 xff0c 在windows下的初学者往往容易入门 xff0c 原因是visual studio 这个强大的工具隐藏了很多的细节 xff0c 好多人甚至以为拖拖控件 xff0c 写写消息响应函数
  • Target ‘STM32F4xx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.找不到v5版本解决方法

    现在官网上没有v5的版本了 xff0c keil默认安装的是v6的版本 xff0c 如果工程想要运行以前的工程 xff0c 可以设置将工程的编辑器从v5转到v6 xff0c 下面是方法 xff1a 1 使用MDK打开工程 2 选择 Proj
  • 关于imu的介绍

    1 imu时惯性运动丹云 xff0c 包含加速度计和陀螺传感器的组合 它被用来检查加速度和角速度 xff08 IMU传感器 xff0c 你所需要知道的全部 知乎 xff09 虽然时外文翻译的 xff0c 凡是整体风格清晰 2 imu的使用
  • LSTM与GRU

    LSTM 与 GRU 一 综述 LSTM 与 GRU是RNN的变种 xff0c 由于RNN存在梯度消失或梯度爆炸的问题 xff0c 所以RNN很难将信息从较早的时间步传送到后面的时间步 LSTM和GRU引入门 xff08 gate xff0
  • Pytorch 实战RNN

    一 简单实例 span class token comment coding utf8 span span class token keyword import span torch span class token keyword as
  • Pytorch : Dataset和DataLoader

    一 综述 Dataset 对数据进行抽象 xff0c 将数据包装为Dataset类 DataLoader 在 Dataset之上对数据进行进一步处理 xff0c 包括进行乱序处理 xff0c 获取一个batch size的数据等 二 Dat
  • 特征工程

    一 数据读取 1 1 读取CSV文件 1 1 1 原文件内容 1 1 2 读取csv span class token keyword import span csv csv file span class token operator 6
  • 续集来了!我让 GPT-4 用 Laf 三分钟写了个完整的待办事项 App

    书接前文 xff0c 上篇文章我们教大家如何三分钟时间用 Laf 实现一个自己的 ChatGPT 一觉醒来 xff0c GPT 4 已经发布了 xff01 GPT 4 实现了真正的多模态 xff0c 可以把纸笔画的原型直接写出网页代码 读论
  • 代码命名规范

    代码命名规范 现在是2016年12月30日中午12点35分 xff0c 这是我第一次写博客 xff0c 用的是markdown编辑器 xff0c 还不太会用 今天就先简单的写一下 xff0c 看看写出来的效果是什么样的 xff01 xff0
  • 盘点2016

    年年有计划 xff0c 岁岁有复盘 xff0c 今天是2016年的最后一天 我也来回忆一下我的2016年 xff0c 展望一下2017年 记得去年的跨年是和几个朋友在一块儿的过的 xff0c 记得当时玩儿了麻将 xff0c 我输了 xff0
  • easyui combobox动态绑定数据

    1 jsp上的写法 lt input span class hljs keyword class span 61 span class hljs string 34 easyui combobox 34 span id 61 span cl
  • Echarts(二、柱状图(各参数详细描述))

    1 jsp页面 span class hljs tag lt span class hljs title body span gt span span class hljs tag lt span class hljs title div
  • js中级脚本算法

    1区间求值算法挑战 span class hljs function span class hljs keyword function span span class hljs title sumAll span span class hl