博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组实例
阅读量:6171 次
发布时间:2019-06-21

本文共 5925 字,大约阅读时间需要 19 分钟。

例1:翻转字符串

function reverseString(str) {  var array = [];  for(var i = 0;i

例2:阶乘

function factorialize(num) {  if(num <=1 ){    return 1;  }else{      return num * factorialize(num-1);  }}factorialize(5);    //120factorialize(20);    //2432902008176640000factorialize(0);    //1

例3:回文

function palindrome(str) {    var a =str.replace(/[\s|\.|\,|\-|\/|\\|\_|\)|\(|\:]/g,'').toLowerCase();    var b = a.split('').reverse().join('');    if(b === a){        return true;      }else{        return false;    }}palindrome("not a palindrome");    //falsepalindrome("0_0 (: /-\ :) 0-0");    //truepalindrome("1 eye for of 1 eye.");    //falsepalindrome("My age is 0, 0 si ega ym.");    //truepalindrome("almostomla");    //falsepalindrome("nope");    //falsepalindrome("never odd or even");    //truepalindrome("A man, a plan, a canal. Panama");palindrome("race car");

例4:找出最大的单词,并返回它的长度

function findLongestWord(str) {          var arrayStr = str.split(' ');    var array = [];    arrayStr.forEach(function(e){            array.push(e.length);    });    var reverseStr = array.sort(compare);    return reverseStr[reverseStr.length-1];}function compare(value1,value2){    if(value1 < value2){        return -1;    }else if(value1 > value2){        return 1;    }else{        return 0;    }}findLongestWord("The quick brown fox jumped over the lazy dog");    //6

例5:将首字母替换成大写

function titleCase(str) {      var tmp = [];    var array = [];    str.split(' ').forEach(function(e){         tmp.push(e.toLowerCase());    });    tmp.forEach(function(e){        array.push(e.replace(e.charAt(0),function(s){            return s.toUpperCase()        }));    });  return array.join(' ');}titleCase("I'm a little tea pot");    //I'm A Little Tea Pot

例6:找到每个数组中最大的一位数,并将它返回

function largestOfFour(arr) {      var tmp = [];    var array = [];    for(var i = 0; i < arr.length; i++){        tmp.push(arr[i].sort(compare));    }    tmp.forEach(function(e){        array.push(e[0]);    });    return array;}function compare(value1,value2){    if(value1 < value2){return 1}    else if(value1 > value2){return -1}    else{return 0}}largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

例7:检查字符串结尾

function confirmEnding(str, target) {    var tmp = [];    tmp = str.split(' ')    if(tmp.length === 1){        tmp = str.split('')    }        var lastWord = tmp[tmp.length-1]     lastWord = lastWord.split('').reverse()    target = target.split('').reverse()    for(var j = 0; j < target.length;j++){        if(target[j] === lastWord[j]){}else{            return false        }    }    return true}confirmEnding("He has to give me a new name", "me")  //trueconfirmEnding("He has to give me a new name", "na")  //false

例8:重复输出字符串

function repeat(str, num) {    if(num <= 0){        return ''    }else if(num === 1){        return str    }else{        return str + repeat(str,num-1)    }    }repeat("abc", -2);`//''repeat("abc", 3);    //'abcabcabc'

例9:阶段字符串

function truncate(str, num) {    if(num <= 3){        return str.substring(0,num)+'...'        }else if(num >= str.length){        return str.substring(0,num)    }else{        return str.substring(0,num-3)+'...'    }}truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2)    //A-tisket a-tasket A green and yellow basket

例10:猴子吃香蕉分割数组

function chunk(arr, size) {    var array = []          for(var i = 0; i < Math.ceil(arr.length / size);i++){        var start = i * size;        var end = start +size;        array.push(arr.slice(start,end))    }    return array}chunk(["a", "b", "c", "d"], 2);    //[["a", "b"], ["c", "d"]]

例11:截断数组

function slasher(arr, howMany) {      return arr.splice(howMany)}slasher([1, 2, 3], 2);    //[3]

例12:比较字符串,如果第一个字符串中包含了第二个字符串的所有字母,则返回true,否则返回false

function mutation(arr) {    for(var i = 0; i < arr[1].length; i++){          if(arr[0].toLowerCase().indexOf(arr[1][i].toLowerCase()) === -1){            return false        }    }        return true}mutation(["hello", "hey"]); //truemutation(["hello", "neo"]);    //false

例13:删掉数组中的假值

function bouncer(arr) {    var array = []    for(var i = 0; i < arr.length; i++){        if(arr[i]){            array.push(arr[i])        }    }    return array}bouncer([7, "ate", "", false, 9]);    //[7,"ate",9]

例14:摧毁数组

function destroyer(arr) {    return [].slice.call(arguments).reduce((current,next) =>{        return current.filter((e) => {            return e !== next        })    })}destroyer([1, 2, 3, 1, 2, 3], 2, 3);    //[1,1]

例15:数组排序并找出元素索引

function where(arr, num) {    arr.push(num)    arr.sort((value1,value2) => {        if(value1 < value2){            return -1        }else if(value1 > value2){            return 1        }else{            return 0        }    })    return    arr.indexOf(num)}where([40, 60], 50);    //1

例16:凯撒密码

方法1——用数组做

function rot13(str) {    str = str.toUpperCase()    var tmp = []    var array = []    var arrayEnd = []    for(var i = 0; i < str.length; i++){        tmp.push(str[i].charCodeAt())    }    tmp.forEach((e) => {        if(e < 65||e > 90){            array.push(e)        }else if(e <= 77){            array.push(e + 13)        }else if(e <= 90){            array.push(e - 13)        }    })    array.forEach((e) => {        arrayEnd.push(String.fromCharCode(e))    })    return arrayEnd.join('')}rot13("SERR PBQR PNZC");  //"FREE CODE CAMP"

方法2——字符串

function rot13(str) {    str = str.toUpperCase()    var tmp     var string = ''    tmp = str.split('')        //split 拆分字符串变成数组,join 合并数组变成字符串    tmp.forEach((e) => {        if(e.charCodeAt() < 65||e.charCodeAt() > 90){            string += e        }else if(e.charCodeAt() <= 77){            string += String.fromCharCode(e.charCodeAt() + 13)        }else if(e.charCodeAt() <= 90){            string += String.fromCharCode(e.charCodeAt() - 13)        }    })    return string}rot13("SERR PBQR PNZC");     //"FREE CODE CAMP"

转载地址:http://phtba.baihongyu.com/

你可能感兴趣的文章
《当程序员的那些狗日日子》(四十一)卑微的角色
查看>>
SQL Server 查看identity值的几种方法。
查看>>
auto uninstaller (autodesk 修复大师) 简体中文版 更新下载地址
查看>>
MySQL 先按某字段分组,再取每组中前N条记录
查看>>
Windows 2008 r2 AD域自定义属性
查看>>
Eclipse - 循环cin的输出怎样终止
查看>>
shell文本过滤编程(十一):paste命令
查看>>
关于spring项目报错:找不到元素 'beans' 的声明的解决办法
查看>>
genymotion device manager列表没有
查看>>
echarts渐变效果
查看>>
superF12
查看>>
matlab练习程序(力场变换)
查看>>
tomcat启动时 myeclipse控制台中文乱码
查看>>
ssh2 三大框架整合
查看>>
web页面效果开源框架收集整合
查看>>
TOJ 4701 求阴影部分面积
查看>>
计数排序算法
查看>>
JavaScript学习笔记——语言基础(2)
查看>>
static,this,抽象类,接口和包
查看>>
sublime 配置Terminal
查看>>