概述
初级算法
第一关:翻转字符串算法挑战
思路:
先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,然后把数组转化成字符串。
方法预知:
1.String.prototype.split(’ ') // 单引号 中, 中间有空格。就是它的指定的分割的标志。
方法使用指定的分隔符字符串将一个String
对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。
eg.
var strArr("hello world"); //定义一个字符串
var s=strArr.split('');
console.log(s[0]);//输出的 h
var t=strArr.split(' '); //中间有空格 做标记
console.log(s[0]);//输出的 hello
- Array.reverse() 方法将阵列反转到位。第一个数组元素成为最后一个,最后一个数组元素成为第一个。
const a = [1, 2, 3];
console.log(a); // [1, 2, 3]
a.reverse();
console.log(a); // [3, 2, 1]
3.**Array.join()**方法通过连接数组(或类数组对象)中的所有元素(由逗号或指定的分隔符字符串分隔)来创建并返回新字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
var elements = ['Fire', 'Air', 'Water'];
console.log(elements.join()); //不放,直接原来输出数组
// expected output: "Fire,Air,Water"
console.log(elements.join('')); // 单引号(没有空格) 相当于的删除了逗号
// expected output: "FireAirWater"
console.log(elements.join('-')); //相当于用“-”替换掉换来的分隔符
// expected output: "Fire-Air-Water"
过程:
把“hello csnd” 翻转字符串 变成“dnsc olleh ”。
function reverseString(str) {
return str.split("").reverse().join("");
//先调用split分解为一个一个字母 【注意:这里是没有空格,所有字符串里的空格 也算一个字符串】
//reverse()方法把位置反转
//用join()方法 把字母连接。
}
reverseString("hello csnd");
//输出结构为 dnsc olleh
第二关:阶乘算法挑战
问题:
计算所提供整数的阶乘。
如果使用字母n代表一个整数,则阶乘是所有小于或等于n的整数的乘积。
阶乘通常简写成 n!
例如: 5! = 1 * 2 * 3 * 4 * 5 = 120
过程:
function factorialize(num) {
var number = 1;
for(i=1;i<=num;i++){
number = number * i;
}
return number;
}
factorialize(5);
//结果 120
第三关: 回文算法挑战
what is 回文?:
指一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样。
问题:
如果给定的字符串是回文,返回true
,反之,返回false
。
您需要删除字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是不是回文。
方法预知:
1.string.replace() 方法返回一个由替换值(replacement
)替换一些或所有匹配的模式(pattern
)后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。
var p = 'dog Dog cat cat ';
var regex = /dog/gi;//正则表达式
//正则表达式包含有全局替换(g)和忽略大小写(i)的选项,这使得replace方法用'ferret'替换掉了所有出现的"dog".
console.log(p.replace(regex, 'pig'));
// 输出 "pig pig cat cat"
console.log(p.replace('dog', 'monkey')); // 替换新的字符串,条件是 dog
// 输出 "monkey Dog cat cat"
2.string.toLowerCase() 方法返回转换为小写的调用字符串值。
ver str='Hello World.';
console.log(str.toLowerCase());
// 输出 "hello world."
过程:
function palindrome(str){
str=str.toLowerCase();
// 先把字符串转化成小写
var vr= /[W_]/g; // 或者 var re = /[^A-Za-z0-9]/g;
str = str.replace(vr,""); // 去除多余的标点符号和空格
var reverseStr = str.split().reverse().join(); // 使用之前的反转字符串方法来反转字符串
return reverseStr === str;
}
palindrome("eye");//palindrome回文
第四关:寻找最长的单词算法挑战
问题:
返回提供的句子中最长的单词的长度。
返回值应该是一个数字。
过程:
function findLongestWord(str){
var strArr = str.split(' '); //有空格 把句子 变成单词
var longest = 0; //存放单词长度,做一个单词的长度对比
for(i=0;i<strArr.length;i++){ // 遍历 有多少个单词
if(strArr[i].length>longest){ // 判断 如果的strArr的单词的长度 ,如果大于longest,则把该单词的长度 赋值给longest。
longest=strArr[i].length;
}
}
return longest;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
//输出 6
第五关 设置首字母大写算法挑战
问题:
返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写。
方法预知:
String.prototype.substring()
**substring(开始部分,结束部分)**方法返回string
开始和结束索引之间的部分,或者返回字符串的结尾。
var str = 'Mozilla';
console.log(str.substring(1, 3)); // M为0 1到3(不取3)
// 输出: "oz"
console.log(str.substring(3,1));//如果indexStart大于indexEnd,则效果substring()就好像两个参数被交换一样;与上述输出一致。
//输出: " oz"
console.log(str.substring(2));// 单给数字时候 就取 2开的结尾
// 输出: "zilla"
console.log(str.substring(1,1));//如果indexStart等于indexEnd,则substring()返回一个空字符串
//输出: " "
String.prototype.toUpperCase()
该**toUpperCase()**方法返回转换为大写的调用字符串值(如果不是一个,则该值将转换为字符串)。
var sentence = ' lazy dog.';
console.log(sentence.toUpperCase());
//输出: "LAZY DOG."
过程:
function titleCase(str) {
//先统一把字符串转成小写
str = str.toLowerCase();
//在用空格分割单词为数组
var strarr = str.split(" ");// 分解成一个一个单词
//用循环把每个单词的首字母转成大写
for(var i=0;i<strarr.length;i++){
var thisstr = strarr[i]; //声明一个thisstr变量 用来存储单词 thisstr=strarr[0]=I'm
strarr[i] = thisstr.substring(0,1).toUpperCase() + thisstr.substring(1); // 给strarr[0]重新赋值
}
return strarr.join(" "); //把单词 连接 成句子,用空格分开。
}
titleCase("I'm a little tea pot");
//输出: I'm A Little Tea Pot
最后
以上就是美丽秋天为你收集整理的JavaScript初级算法初级算法的全部内容,希望文章能够帮你解决JavaScript初级算法初级算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复