我是靠谱客的博主 沉静灯泡,最近开发中收集的这篇文章主要介绍JavaScript初级算法2初级算法2,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

初级算法2

第六关 寻找数组中的最大值算法

问题:

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

提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素。

function largestOfFour(arr) {
// You can do this!
return arr;
}

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

过程:

function largestOfFour(arr) {
	var maxarr=[];   //先定义的一个新数组,用来存储每个就数组中的最大的值
    for(var i=0;i<arr.length;i++){  //把arr数组分成一小组
        var maxval=0;   // 定义一个变量。用来获取每一小组中的最大值
        for(var j=0;j<arr[i].length;j++){  // 遍历每一小组
            if(arr[i][j]>maxval){     //在每一小组中做对比
                maxval=arr[i][j];
            }
        }
        maxarr[i]=maxval;  // 每一小组遍历完后,都有一个最大值,把它存给maxarr数组中,换下一轮小组。
    }
return maxarr;
}

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

//输出  [5,27,39,1001]

第七关 确认末尾字符算法

问题:

检查一个字符串(str)是否以指定的字符串(target)结尾。

如果是,返回true;如果不是,返回false。

过程:

​ 该题目中,要考虑多种条件下,

function confirmEnding(str, target) {
    if(str.length<target.length){
        return false;
    }else if(str==target || str.substr(str.length-target.length)==target){ 
        //sbustr()方法 当为一个数字时,获取的字符串的该数字对应的字
        //str.length-target.length  该题目为5 对应着就是Bastian 中的n 
        //不同可以了解 可以看第五关内容。
        return true;
    }else{
        return false;
    }
}
confirmEnding("Bastian", "n");

//输出  true

第八关 重复操作算法

问题:

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

过程:

function repeat(str, num) {
    if (num<0) {
        return "";
    }
    var stradd=str;      //当num=0时,stradd==str 所以这里要先等于str。
    for(var i=1;i<num;i++){   //因为上面已经有零了,所以这里的i=1开始
        stradd+=str;
    }
    return stradd;
}
repeat("abc", 3);


//输出 abcabcabc

第九关 字符串截取算法

问题:

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

切记,插入到字符串尾部的三个点号也会计入字符串的长度。

然而,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。

方法预知:

1.String.prototype.slice()提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串。

【ps】:空格 标点符号都算一个字符,从编号从0开始。

var str = 'The quick brown fox jumps over the lazy dog.';  

console.log(str.slice(31));  //当只有一个正数 相当于从 第31字符开始到 末尾 
// expected output: "the lazy dog."

console.log(str.slice(4, 19));  
// expected output: "quick brown fox"

console.log(str.slice(-4));  //从末尾开始 截取到 倒数第4给 字符
// expected output: "dog."

console.log(str.slice(-9, -5));
// expected output: "lazy"

过程:

function truncate(str, num) {
    //先获取的字符串的长度
    //如果字符串长度大于num的长度,则字符串的长度改为num的长度,后面用...代替
    //如果len> num 则 调用slice()方法 
  var len = str.length;
  if(len > num){
    if(num > 3){
      str = str.slice(0,num - 3) + "...";  //num-3就是
    }else{
      str = str.slice(0,num) + "...";
    }
  }
  return str;
  
}
truncate("A-tisket a-tasket A green and yellow basket", 11);
//输出 A-tisket...

truncate("Peter Piper picked a peck of pickled peppers", 14);  
//输出  Peter Piper...

truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length);   
//输出 A-tisket a-tasket A green and yellow basket...

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

truncate("A-", 1);  
//输出 A... 

truncate("Absolutely Longer", 2);  
//输出  Ab...

第十关 数组分割算法

问题:

编写一个函数,把一个数组arr按照指定的数组大小size分割成若干个数组块。

例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];

chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];

过程:

function chunk(arr, size) {
  var len = arr.length; //获取数组的长度
  var resultArr = [];
  for(var i=0;i<len;){
    //数组块
    var groupArr = [];
    for(var j=0;j<size;j++){  //开始分四个为一组
      groupArr.push(arr[i]);  //传给groupArr[]数组内
      i++;
    }
    resultArr.push(groupArr);  
    //如果剩余的数不够一个数组块的大小
    if(len - i < size){   //2<4
      size = len - i;     //size=2;
    }
  }
  return resultArr;
  
}

chunk([0, 1, 2, 3, 4, 5], 4);  //分成4个为一组。
//输出  [[0,1,2,3],[4,5]]

最后

以上就是沉静灯泡为你收集整理的JavaScript初级算法2初级算法2的全部内容,希望文章能够帮你解决JavaScript初级算法2初级算法2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部