freecodecamp刷题笔记基础算法题6-10题

Return Largest Numbers in Arrays 找出多个数组中的最大数

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

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

当你完成不了挑战的时候,记得开大招’Read-Search-Ask’。

这是一些对你有帮助的资源:

Comparison Operators

function largestOfFour(arr) {
  // 请把你的代码写在这里
  var arr1=[];
  for(var i=0;i<arr.length;i++){
    var max=arr[i][0];
    for(var j=0;j<arr[i].length;j++){
      max=max>arr[i][j]?max:arr[i][j];
    }
    arr1.push(max);
  }
  return arr1;
}

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

思路就是用for循环找出每个数组中的最大项,然后保存在数组arr1中,没什么难度。

Confirm the Ending 检查字符串结尾

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

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

当你完成不了挑战的时候,记得开大招’Read-Search-Ask’。

这是一些对你有帮助的资源:

String.substr()

function confirmEnding(str, target) {
  // 请把你的代码写在这里
  var length1 = str.length;
  var length2 = target.length;
  str1 = str.substr(length1-length2,length2);
  return str1==target?true:false;
}

confirmEnding("Bastian", "n");

这里主要是用了str.substr()这个方法。
语法:
stringObject.substr(start,length);
start为字符串的下标,length为截取的字符数目,返回值为一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。

Repeat a string repeat a string 重复输出字符串

(重要的事情说3遍)

重复一个指定的字符串 num次,如果num是一个负数则返回一个空字符串。

当你完成不了挑战的时候,记得开大招’Read-Search-Ask’。

这是一些对你有帮助的资源:

Global String Object

function repeat(str, num) {
  // 请把你的代码写在这里
  var str1="";
  if(num>=0)for(var i=0;i<num;i++)str1=str1+str;
  return str1;
}

repeat("abc", 3);

每循环一次,即使str多重复一遍,用“+”执行字符串链接。

Truncate a string 截断字符串

(用瑞兹来截断对面的退路)

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

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

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

当你完成不了挑战的时候,记得开大招’Read-Search-Ask’。

这是一些对你有帮助的资源:

String.slice()
function truncate(str, num) {
  // 请把你的代码写在这里
  
  if(str.length>num&&num>3)str = str.slice(0,num-3)+"...";
  if(str.length>num&&num<=3)str = str.slice(0,num)+"...";
  return str;
}

truncate("A-tisket a-tasket A green and yellow basket", 11);

从题目可以知道,当num>=str.length时,显然输出结果是原字符串,因此只需考虑num<str.length时的情况:即num>3和num<=3。其中的String.slice()方法:
String.slice() 方法提取一个字符串的一部分,并返回一新的字符串。
语法:str.slice(beginSlice[, endSlice]);

beginSlice
从该索引(以 0 为基数)处开始提取原字符串中的字符。
endSlice
可选。在该索引(以 0 为基数)处结束提取字符串。

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]];

当你完成不了挑战的时候,记得开大招’Read-Search-Ask’。

这是一些对你有帮助的资源:

Array.push()
Array.slice()

function chunk(arr, size) {
  // 请把你的代码写在这里
  var arr1=[];
  for(var i=0;i<arr.length;i+=size){
    arr1.push(arr.slice(0+i,size+i));   
  }
  return arr1;
}
chunk(["a", "b", "c", "d"], 2);

其中slice() 方法返回一个新的数组对象,这一对象是一个由 begin和 end(不包括end)决定的原数组的浅拷贝。原始数组不会被改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值