一、找到数组的子数组中每个最大值
1.使用简单的for循环,使用数组语法访问每个arr[i]
2.返回的数组由每个子数组的最大值组成
function largestOfFour(arr) {
// You can do this
let newArr=[];
for(var i=0;i<arr.length;i++){
newArr[i]= Math.max.apply(null,arr[i]);
}
return newArr;
}
largestOfFour([[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]);
Math.max参数不支持数组,返回n多数值参数中的最大值
apply语法:apply(this,arguments)
二、找到字符串的最长子字符串
用split 将字符串以空格为分隔符分割并且存为字符串数组
初始化长度len
function findLongestWordLength(str) {
let arr1=str.split(" ");
let len=0; //初始化长度
}
findLongestWordLength("The quick brown fox jumped over the lazy dog");
通过for循环遍历arr1数组中的每一个字符串
如果其长度大于len ,将其长度赋给len
for(let i=0;i<arr1.length;i++){
if(arr1[i].length>len){
len=arr1[i].length;
}
}
return len;
}
三、匹配字符串尾部
1. str.endsWith(target)
function confirmEnding(str, target) {
return str.endsWith(target);
}
confirmEnding("Bastian", "n");
2. str.substring 提取字符串介于两个下标间的字符,一个值表示从伊至终
//substring一个参数表示从此处开始到结尾,(字符串长度-尾匹配项长度)
return str.substring(str.length-target.length)===target;
四、缩短字符串
定义一个空数组用来存最终会返回的字符串,一个变量存字符串的长度
function truncateString(str, num) {
// Clear out that junk in your trunk
let leng=str.length;
let char1=[];
}
truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2)
题目要求“truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2)
should return "A-tisket a-tasket A green and yellow basket".”
判断参数num是否超出str的长度
if(num<leng){
for(let i=0;i<num;i++){
char1.push(str[i]);
}
return char1.join("")+"...";
}else{
char1.push(str);
return char1.join("");
}
}
五、Finders Keepers
function findElement(arr, func) {
let num = 0;
for(let i=0;i<arr.length;i++){
num=arr[i];
if((num%2===0)&&func){
return num;
}else{
num=undefined;
}
}
return num;
}
findElement([1, 2, 3, 4], num => num % 2 === 0);
然鹅 看到论坛别人一句 return arr.find(func); 足矣
菜鸡能写出来不错了hhhhh~~~
六、大写一组字符串的首字母
先将字符串通过 split 以空格分割并且储存为数组
function titleCase(str) {
let newStr=str.split(" ");
}
titleCase("I'm a little tea pot");
for 循环遍历数组中的子字符串,让其小写,将每个子字符串再次分割,
for(let i=0;i<newStr.length;i++){
newStr[i]=newStr[i].toLowerCase().split("");
}
割成这个样子
再将其上数组第一项 newStr [i] [0] 大写
newStr[i][0]=newStr[i][0].toUpperCase();
newStr[i]= newStr[i].join("");
将首字母大写的每一项子字符串(数组形式)以 join方法 存为字符串形式
跳出for循环后,
return newStr.join(" ");
有种叫做别人的代码
function titleCase(str) {
return str.toLowerCase().replace(/(?:^|\s)\S/g,
function(a) {
return a.toUpperCase();
});
}
titleCase("I'm a little tea pot");
//
function titleCase(str) {
return str.toLowerCase().replace(/(^|\s)\S/g, (L) => L.toUpperCase());
}
七、splice 和 slice
题目要求:用到splice和slice,arr1和arr2不变,
frankenSplice([1, 2, 3], [4, 5], 1) should return [4, 1, 2, 3, 5].
frankenSplice([1, 2], ["a", "b"], 1) should return ["a", 1, 2, "b"].
将arr2用slice剪切,存入变量,splice进行插入
function frankenSplice(arr1, arr2, n) {
let arrCopy = arr2.slice();
arrCopy.splice(n, 0, ...arr1);
return arrCopy;
}
console.log(frankenSplice([1, 2, 3], [4, 5, 6], 1));
八、Falsy Bouncer 过滤假值
假值:undefined null false NaN 0 +0 -0 ' ' " "
提示和要求:
Remove all falsy values from an array.
Falsy values in JavaScript are false, null, 0, "", undefined, and NaN.
Hint: Try converting each value to a Boolean.
bouncer([7, "ate", "", false, 9]) should return [7, "ate", 9].
bouncer(["a", "b", "c"]) should return ["a", "b", "c"].
bouncer([false, null, 0, NaN, undefined, ""]) should return [].
bouncer([1, null, NaN, 2, undefined]) should return [1, 2]
1.判断数组中每项是否为布尔值 !!arr[i]==true
function bouncer(arr) {
// Don't show a false ID to this bouncer.
let newArr=[];
for(let i=0;i<arr.length;i++){
if(!!arr[i]==true){
newArr.push(arr[i]);
}
}
return newArr;
}
bouncer([7, "ate", "", false, 9]);
2.用 filter 过滤掉布尔值
function bouncer(arr) {
return arr.filter(Boolean);
}
bouncer([7, "ate", "", false, 9])
filter 返回一个过滤筛选后的新数组
return arr.filter(function(values
return !!values;
})
转换为字符串 | ||
toString() | var found=true; found.toString(); null,undefined没有此方法 | |
String | String(10); null 返回“null”,undefined=>"undefined" |
九、Where do I Belong
返回小于num的的个数
function getIndexToIns(arr, num) {
let count=0;
for(let i=0;i<arr.length;i++){
if(arr[i]<num){
count++;
}
}
return count;
}
getIndexToIns([40, 60], 50);
十、Chunky Monkey(矮胖猴????)
题目要求:
chunkArrayInGroups(["a", "b", "c", "d"], 2)
should return [["a", "b"], ["c", "d"]]
.
chunkArrayInGroups([0, 1, 2, 3, 4, 5], 3)
should return [[0, 1, 2], [3, 4, 5]]
.
for循环的索引 间隔是 size,不是 1
function chunkArrayInGroups(arr, size) {
let newArr=[];
for(let i=0;i<arr.length;i+size){
newArr.push(arr.splice(i,size))
}
return newArr;
}
chunkArrayInGroups([0, 1, 2, 3, 4, 5], 3)
其中for循环也可写成
for(let i=0;i<arr.length;){
}
但是省略部分是 i+size不是i++
.
脑阔疼