1. Sum All Numbers in a Range
function sumAll(arr) {
var min,max;
if (arr[0]>arr[1]) {
max = arr[0];
min = arr[1];
}else{
max = arr[1];
min = arr[0];
}
var sum = 0;
for (var i = min; i <= max ; i++) {
sum+=i;
}
return sum;
}
思路:
1.判断两个数大小,大的赋给max,小的赋给min
2.for循环,将min设为初始值,max设为循环边界值,求和
3.返回求和值
2. Diff Two Arrays
function diffArray(arr1, arr2) {
var newArr = arr1.concat(arr2);
newArr.sort();
for (var i = 0; i < newArr.length; i++) {
if (newArr[i]===newArr[i+1]) {
delete newArr[i];
delete newArr[i+1];
}
}
return newArr.filter(Boolean);
}
思路:
1.将两个数组连接成一个数组
2.对数组元素进行排序
3.判断相邻的数是否相同,如果相同,则把这俩数全部删除
4.过滤所有真值,并将其返回。
5. Search and Replace
function myReplace(str, before, after) {
var beforeFirstLetter = before.substr(0,1); //截取之前字符串的首位
var newstr;
var flag = /[A-Z]/.test(beforeFirstLetter);
if(!flag){
newstr = str.replace(before,after);
return newstr;
}else{
var afterFirstLetter = after.substr(0,1).toUpperCase(); //将替换单词首字母取出来大写
var sliced = after.split('').slice(1).join(''); //将除过首字母之外的部分切割出来
newafter = afterFirstLetter + sliced; //拼接首字母大写的单词
newstr = str.replace(before,newafter);
return newstr;
}
}
思路:
1.判断要替换的单词首字母是否为大写。
2.不是的话,直接替换。
3.是大写的将需要替换的单词首字母变成大写然后替换。
21.Arguments Optional
我在这道题上卡的时间比较长,因为理解闭包花费了一些时间,看了好些博客和YouTube上的教程,自己也跟着教程敲了一些代码,理解的差不多重新回来看题,思路清晰了不少。