FCC基本算法(二)

来源:互联网 发布:csol登录失败或是网络 编辑:程序博客网 时间:2024/06/06 08:59

1.Return Largest Numbers in Arrays

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


思路:两个循环即可解决,内循环找到小数组的最大值,外循环将最大值放进一个新数组里面。

function largestOfFour(arr) {  // You can do this!  var newArr = [];  for(var i = 0; i < arr.length; i++){    var temp = 0;    for(var j = 0; j < arr[i].length; j++){      if(arr[i][j] > temp){        temp = arr[i][j];      }    }    newArr.push(temp);  }  return newArr;}largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

2.Confirm the Ending

检查一个字符串(str)是否以指定的字符串(target)结尾。
如果是,返回true;如果不是,返回false。


思路:用substr()方法返回字符串中从指定位置开始到指定长度的子字符串,再与target匹配即可。

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


3.Repeat a string repeat a string

重要的事情说3遍!
重复一个指定的字符串 num次,如果num是一个负数则返回一个空字符串。


思路:当num > 0时,循环执行str += temp; 直到i < num - 1即可。

function repeat(str, num) {  // repeat after me  var temp = str;  if(num > 0){      for(var i = 0; i < num - 1; i++){      str = str + temp;    }  }else{    return "";  }    return str;}repeat("abc", 3);


4.Truncate a string

用瑞兹来截断对面的退路!
截断一个字符串!
如果字符串的长度比指定的参数num长,则把多余的部分用...来表示。
切记,插入到字符串尾部的三个点号也会计入字符串的长度。
但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。


思路:slice()方法提取字符串中的一部分,并返回这个新字符串。当num > 3时,判断str的长度是否大于num,如果大于,则用slice()方法返回0到num - 3长度的字符串并加上“...”;如果小于或等于num,则直接返回。当num <= 3时,用slice()返回0到num长度的字符串并加上“...”;

function truncate(str, num) {  // Clear out that junk in your trunk  var newStr = "";  if(num > 3){      if(str.length > num){         newStr = str.slice(0, num-3) + "...";      }else if(str.length <= num){         return str;    }  }else{    return str.slice(0, num) + "...";  }       return newStr;}truncate("A-tisket a-tasket A green and yellow basket", 11);


5.Chunky Monkey 

猴子吃香蕉可是掰成好几段来吃哦!
把一个数组arr按照指定的数组大小size分割成若干个数组块。
例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];
         chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];


思路:循环用slice()方法将size长度的字符串放进新的数组中。

function chunk(arr, size) {  // Break it up.  var newArr = [];  for(var i = 0; i < arr.length; i += size){     newArr.push(arr.slice(i,i + size));  }    return newArr;}chunk(["a", "b", "c", "d","e"], 2);



0 0
原创粉丝点击