1.字符串中单词首字母大写 - Title Case a Sentence
function titleCase(str) {
// 请把你的代码写在这里
var newArr = str.toLowerCase().split(" ");
var secondArr = newArr.map(function(val) {
return val.replace(val.charAt(0),val.charAt(0).toUpperCase());
});
var newStr = secondArr.join(" ");
return newStr;
}
titleCase("I'm a little tea pot");
2.找出多个数组中的最大数 - Return Largest Numbers in Arrays
解题思路:将数组中的每个小数组进行从大到小排序,将 arr[i][0]
(排序后为最大值)用 push
方法 添加到新创建的数组中。
function largestOfFour(arr) {
// 请把你的代码写在这里
var newArr= [];
for(var i =0;i<arr.length;i++){
arr[i].sort(function(a,b){
return b-a;
});
newArr.push(arr[i][0]);
}
return newArr;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
3.检查字符串结尾 - Confirm the Ending
解题思路:根据提示内容,使用 string.substr() 方法,将str的后几位字符与target进行拼配。
function confirmEnding(str, target) {
// 请把你的代码写在这里
var tarLength = target.length;
return str.substr(-tarLength) === target;
}
confirmEnding("Bastian", "n");
4.重复输出字符串 - Repeat a string repeat a string
解题思路:使用for循环,将字符串依次输出。
function repeat(str, num) {
// 请把你的代码写在这里
var newStr = '';
if (num > 0) {
for (var i = 1; i <= num; i++) {
newStr += str;
}
return newStr;
} else {
return "";
}
}
repeat("abc", 3);
5.截断字符串 - Truncate a string
解题思路:使用判断语句;
function truncate(str, num) {
// 请把你的代码写在这里
if (str.length <= num) {
return str;
} else {
if (num > 3) {
return str.slice(0, num - 3) + "...";
} else {
return str.slice(0, num) + "...";
}
}
}
truncate("A-tisket a-tasket A green and yellow basket", 11);
6.分割数组 - Chunky Monkey
function chunk(arr, size) {
// 请把你的代码写在这里
var bigArr = [];
if (arr.length < size) {
return arr;
} else {
for (var i = 0; i < arr.length; i += size) {
bigArr.push(arr.slice(i, size + i));
}
return bigArr;
}
}
chunk(["a", "b", "c", "d"], 2);
7.比较字符串 - Mutations
解题思路:
function mutation(arr) {
// 请把你的代码写在这里
var secondArr = arr[1].toLowerCase();
for (var i = 0; i < secondArr.length; i++) {
if (arr[0].toLowerCase().indexOf(secondArr[i]) < 0)
return false;
}
return true;
}
mutation(["hello", "hey"]);
8.过滤数组假值 - Falsy Bouncer
function bouncer(arr) {
// 请把你的代码写在这里
var newArr = [];
arr.map(function(val){
if(val){
return newArr.push(val);
}
});
return newArr;
}
bouncer([7, "ate", "", false, 9]);
更好的解决方法:
function bouncer(arr) { // 请把你的代码写在这里 return arr.filter(Boolean); } bouncer([7, "ate", "", false, 9]);
9.摧毁数组 - Seek and Destroy
解题思路:判断是否与原数组相同。
function destroyer(arr) {
// 请把你的代码写在这里
var secondArr = [];
var args = Array.prototype.slice.call(arguments);
for(var i= 0;i<arr.length;i++){
for(var j=0;j<args.length;j++){
if(arr[i]===args[j]){
delete arr[i];
}
}
}
return arr.filter(Boolean);
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
10.数组排序并找出元素索引 - Where do I blong
function where(arr, num) {
// 请把你的代码写在这里
arr.push(num);
arr.sort(function(a,b){
return a-b;
});
return arr.indexOf(num);
}
where([40, 60], 50);
11.凯撒密码 - Caesars Cipher
解题思路:对字符串进行逐个解码编译,并直接输出。
function rot13(str) { // LBH QVQ VG!
// 请把你的代码写在这里
var num = 0;
var myString = "";
for (var i = 0; i < str.length; i++) {
num = str.charCodeAt(i);
if (num >= 65) {
num += 13;
}
if (num > 90) {
num -= 26;
}
myString += String.fromCharCode(num);
}
return myString;
}
rot13("SERR PBQR PNZC"); // 你可以修改这一行来测试你的代码