zoukankan      html  css  js  c++  java
  • JavaScript算法编程基础

    1.翻转字符串算法

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

    2.计算阶乘

    function factorialize(num) {
        if(num>1){
            return num*factorialize(num-1)
        }
        else{
            return 1;
        }
    }
    factorialize(5);

    3.如果给定的字符串是回文,返回true,反之,返回false

    function palindrome(str) {
     var  str1 = str.toLowerCase();  
      var reg = /[W\_]/g;                     
      var str2 = str1.replace(reg, "");
      var str3 = str2.split("");  
      var str4 = str3.reverse(); 
      var str5 = str4.join("");  
      return str2 === str5;
        
    }
    palindrome("eye");

    4.寻找最长的单词,返回提供句子中最长的单词长度

    function findLongestWord(str) {
        var arr = new Array();
        arr = str.split(" ");
        var compare =0;
        var len = 0;
        for(var i=0;i<arr.length;i++)
        {
            len = arr[i].length;
            if(len>compare){
                compare = len;
            }
        }
    return compare;
    }
    findLongestWord("The quick brown fox jumped over the lazy dog");

    5.设置首字母大写返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写。

    function titleCase(str) {
        var str1 =str.split(" ");
        for(var i=0; i<str1.length ;i++)
        {
            str1[i]= str1[i].slice(0,1).toUpperCase()+str1[i].slice(1).toLowerCase();
        }
        return str1.join(" ");
    }
    titleCase("I'm a little tea pot");

    6.  寻找数组中的最大值,大数组中包含了4个小数组,请分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新的数组。

    function largestOfFour(arr) {
        var newArr = [];
        for(var i=0; i<arr.length; i++)
        {
            newArr.push(Math.max.apply(Math,arr[i]))
        }
    return newArr;
    }
    largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

    7.检查一个字符串是否以指定的字符串结尾。

    function confirmEnding(str, target) {
    return str.substring(str.length-target.length)  === target;
    }
    confirmEnding("Bastian", "n");

    8.循环拼接一个指定的字符串 num次,如果num是一个负数,则返回一个空字符串

    function repeat(str, num) {
    return num>0 ? str.repeat(num):"";
    }
    repeat("abc", 3);

    9.字符串截取, 如果字符串的长度比给定的参数num长,则把多余的部分用...来表示。

    function truncate(str, num) {
    if(str.length>num && num>3)
    {
        str = str.slice(0,num-3)+"..."
    }
    else if(str.length>num && num<=3)
    {
        str = str.slice(0,num) + "..."
    }
    else
    {
        str = str;
    }
    return str;
    }
    truncate("A-tisket a-tasket A green and yellow basket", 11);

    10.数组分割,把一个数组arr按照指定的数组大小size分割成若干个数组块

    function chunk(arr, size) {
    var arr1 = []
    while(arr.length>0)
    {
        arr1.push(arr.splice(0,size))
    }
    return arr1
    }
    chunk(["a", "b", "c", "d"], 2);

    11.数组截断, 返回一个数组被截断n个元素后还剩余的元素,从索引0开始截断。

    function slasher(arr, howMany) {
    var str = arr.slice(howMany)
    return str;
    }
    slasher([1, 2, 3], 2);

    12.数组查询, 如果数组第一个字符串元素包含了第二个字符串元素的所有字符,则函数返回true

    function mutation(arr) {
        if(arr.length>=2)
        {
             var str = arr[0].toLowerCase();
             var str1 = arr[1].toLowerCase();
             for(var i =0;i<str1.length;i++)
             {
                 if(str.indexOf(str1.charAt(i))===-1)
                 {
                     return false;
                 }
             }
             return true;
        }
    return arr;
    }
    mutation(["hello", "hey"]);

    13.删除数组中的所有的假值

    function bouncer(arr) {
    return arr.filter(Boolean);
    }
    bouncer([7, "ate", "", false, 9]);

    14.去除数组中任意多个值,第一个参数是初始数组,后跟一个或多个参数。从初始数组中删除与这些参数具有相同值的所有元素。

    function destroyer(arr) {
    var arr1 = arguments;
    for(i=1;i<arr1.length;i++)
    {
        arr = arr.filter(function(val){
            return arr1[i]!==val;
        })
    }
    return arr;
    }
    destroyer([1, 2, 3, 1, 2, 3], 2, 3);
  • 相关阅读:
    ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
    py-faster-rcnn(running the demo): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+python2.7环境搭建记录
    spring配置hibernate的sessionFactory
    Java编程题
    java编写encode方法和decode方法,机试题
    港交所OMD-C对接笔记
    基于百词斩和扇贝单词的背单词APP软件测试
    C++实现对文件中各单词词频的统计及其代码优化
    C++如何获取当前路径下所有文件的文件名
    【信号与线性系统】为什么求解零输入响应时转移算子H(p)不能约分,但计算单位冲激响应时却可以约分?
  • 原文地址:https://www.cnblogs.com/Hero-Bin/p/11953542.html
Copyright © 2011-2022 走看看