04-数组字符串1-10
console.log("第一题")
/*-----------------封装函数 检查字符串结尾 -------------------*/
// 1.截取字符串的后两位
// 2.截取出的后两位的字符串和字符串2比较
// 3.相等的则返回true 反之flase
function confirmEnding(str,target){
if(str.slice(-target.length)==target){ //截取的值是一个变量,先获取target的长度然后给str截取
return true; //从后面开始从左向右截取
}else{
return false;
}
// 方法二
// if(str.slice(str.length-2)===target){ // slice 字符串的截取
// console.log(true);
// }else{
// console.log(false);
// }
// 方法三
// return str.slice(-target.length)==target
}
console.log(confirmEnding("He has to give me a new name", "me"))//true
console.log(confirmEnding("He has to give me a new name", "na"))//flase
console.log("第二题")
/*-----------------封装函数 用来反转数字 -------------------*/
// 1.把数字变成字符串 '12345'
// 2.使用split('') ['1','2','3','4','5']
// 3.数组reserve() ['5','4','3','2','1']
// 4.使用join('') '54321'
// 5.把字符串变成数字 +或者Number 54321
function reverseNumber(num){
var tsnum=num.toString(); //转换为字符串
tsnum=tsnum.split(''); //切割字符串变成数组
tsnum=tsnum.reverse(); //数组反转
tsnum=tsnum.join(''); //数组拼接为字符串
tsnum=+tsnum; //变成数字类型
console.log(typeof tsnum);
return tsnum;
// 方法二
//return +num.toString().split('').reverse().join('')
}
console.log(reverseNumber(12345))//函数执行完后return的值赋给了reverseNumber(12345)打印出来
console.log("第三题")
/*----------封装函数 来检测传入的字符串是否为回文---------*/
// 1.使用split('')把str变成数组 ['h','e','l','l','o']
// 2.使用reverse()函数 ['o','l','l','e','h']
// 3.使用join('')函数拼出来新的字符串 'olleh'
// 4.新的字符串和str比较
// 5.相等则返回true 反之false
function isPalindrome(str){
var str1=str;
str1=str1.split(""); //切割字符串变成数组
str1=str1.reverse(); //数组反转
str1=str1.join(""); //数组拼接为新的字符串
if(str1==str){
console.log(true);
}else{
console.log(false);
}
//方法二
//return str==str.split('').reverse().join('');
}
isPalindrome('hello'); // false
isPalindrome('madam'); // true
// console.log(isPalindrome('hello'))
// console.log(isPalindrome('madam'))
console.log("第四题")
/*----------写一个函数对传入的字符串输出所有子字符串组合---------*/
// 1.双层for循环
// 2.把拿出的值放进数组里面
function substrings(str){
var arr=[] //把截取到的东西放入数组中
for(var i=0;i<str.length;i++){
for(var j=i;j<str.length;j++){
//str.slice(i,j+1) //循环把子串截取出来
arr.push(str.slice(i,j+1))
}
}
return arr
}
substrings('dog'); // ['d', 'do', 'dog', 'o', 'og', 'g']
substrings('cat'); // ['c', 'ca', 'cat', 'a', 'at', 't']
console.log(substrings('dog'))
console.log(substrings('cat'))
console.log("第五题")
/*----------- 写一个函数对传入的字符串重新按字母排序---------------*/
// 1.用split切割字符串变成数组
// 2.用sort函数,会自动排列
// 3.用join把数组变成字符串
function reorderStr(str){
var str2;
str2=str.split('');
str2=str2.sort();
str2=str2.join('');
return str2;
}
console.log(reorderStr('webmaster'))// abeemrstw
console.log("第六题")
/*---------- 写一个函数对传入的字符串中每个单词的首字母大写---------*/
// 1.先变成数组,然后通过for循环(遍历)把每一项拿出来,然后通过replace函数修改数组每第一个字母
// 2.然后通过join函数拼接
function myCap(str){
var arr=str.split(' '); //加空格是在这条句子有空格的地方作为隔开,变成数组
for(var i=0;i<arr.length;i++){
arr[i]=arr[i].replace(arr[i][0],arr[i][0].toUpperCase()) //the=The 赋值
}
return arr.join(' '); //数组变成字符串
}
console.log(myCap('the quick brown fox'))// The Quick Brown Fox
console.log("第七题")
/*----------写一个函数找出传入的字符串中最长的单词---------*/
// 1.使用split('')函数 把字符串变成数组 ['Web','Development','Tutorial']
// 2.然后比大小,存放,再打印出来
;
function findLongest(str){
var arr=str.split(' ');
var max =arr[0]; //存放长度最大的字符
for(var i=0;i<arr.length;i++){
if(max.length<arr[i].length){
max=arr[i];
}
}
return max;
}
console.log(findLongest('Web Development Tutorial')) // Development
console.log("第八题")
/*----------封装函数 实现toUpperCase方法---------*/
// 1.把小写的字符变成大写的字符 ASCII吗 小写和大写差了32个
// 2.如果是大写字符就不变 遍历字符串
function myUpperCase(str){
var newStr="";
for(var i=0;i<str.length;i++){
var charCode = str.charCodeAt(i); //存放每隔字符的Unicode码
if(charCode>=97 && charCode<=122){ //如果在这个区间,把小写转换为大写
newStr+=String.fromCharCode(charCode-32) //拼接起来
}else{
newStr+=str[i]
}
}
return newStr;
}
console.log(myUpperCase("hEllo")) //HEllo
console.log("第九题")
/*-------------封装函数 实现数组sort的方法(参考冒泡排序--------------*/
// 1.相邻两个数字相减 如果是正 那就交换位置 反之不交换
// 2.拿到数组每一项后想和相邻的相比,再一次for循环
/* 3. a=2 b=3 等量代换
c=b=3
b=a=2
a=c
*/
function mySort(num){
for(var i=0;i<num.length;i++){ //拿到数组每一项
for(var j=0;j<num.length;j++){ //每次要从头开始比
if(num[j]>num[j+1]){
var temp = num[j+1]
num[j+1]=num[j]
num[j]=temp
}
}
}
return num;
}
//mySort([2,33,41,10,5]) //[2,5,10,33,41]
console.log(mySort([2,33,41,10,5,4,9]))
console.log("第十题")
/*-------------封装函数 重复输出字符串----------------*/
function repeat(str, num) {
var str3 = '';
if(num<0){ //防止是负数,负数则认为不重复
return str;
}
for(var i=0;i<num;i++){
str3+=str;
}
return str3;
}
console.log(repeat("abc", -2)) //abc
console.log(repeat("abc", 3)) //abcabcabc
作者:oRa

浙公网安备 33010602011771号