js字符串方法练习----上
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
// 1、封装函数 检查字符串结尾: 例如:输入confirmEnding("He has to give me a new name", "me")返回true
function confirmEnding(str, strPart) {
// 获取长度
var strLen = str.length,
strPartLen = strPart.length;
// 定义字符串从什么位置开始截取
var num = strLen - strPartLen;
// 3种方法。slice()、substring()、substr()
// if (strPart == str.slice(num)) {
// return true;
// } else {
// return false;
// }
return (strPart === str.slice(num));
}
console.log(confirmEnding("He has to give me a new name", "ffme"));
// 2、封装函数 用来反转数字 例如:输入reverseNumber(123456);返回654321
function reverseNumber(num) {
// 思路:字符串没有反转的方法,先转换为数组进行反转,然后将反转之后的数组转为字符串 split() reverse() join()
var num = num + ""; // Number转化为字符串
var arrNum = num.split("").reverse(); // 将字符串转为数组并反转
var strNum = +(arrNum.join("")); // 将数组装换为字符串并转成Number
return strNum;
}
console.log(reverseNumber(123456));
// 3、判断两边是否对称。输入isPalindrome('hello');返回false;输入isPalindrome('madam');返回true
function isPalindrome(str) {
// 奇数情况:3 5 7 9 11
// 1.5 2.5 3.5 4.5 5.5 向上取整
// 偶数情况:len/2分两边,反转一边,判断两边是否一样
var len = str.length;
var num, str1;
// 前面为偶数,后面为奇数
len % 2 == 0 ? num = len / 2 : num = Math.ceil(len / 2);
len % 2 == 0 ? str1 = str.slice(0, num).split("").reverse().join("") : str1 = str.slice(0, num - 1).split("").reverse().join("");
// 进行判断
return (str1 === str.substring(num));
}
console.log(isPalindrome("hello"), isPalindrome("madam"));
// 4、写一个函数对传入的字符串输出所有子字符串组合 例如输入substrings('dog'); 返回['d', 'do', 'dog', 'o', 'og', 'g']
function substrings(str) {
var arr = [];
var len = str.length
for (var i = 0; i < len; i++) {
for (var j = 1; j <= len - i; j++) {
arr.push(str.substr(i, j))
}
}
return arr
}
console.log(substrings('dog'));
// 5、写一个函数对传入的字符串重新按字母排序 例如 输入reorderStr('webmaster');返回 abeemrstw
function reorderStr(str) {
return str.split("").sort().join(""); // 转换为数组,数组进行排序,然后转换为字符串
}
console.log(reorderStr('webmaster'));
// 6、写一个函数对传入的字符串中每个单词的首字母大写 输入myCap('the quick brown fox'); 返回The Quick Brown Fox
function myCap(str) {
var arrStr = str.split(" "); // 通过" "转换为数组
var len = arrStr.length;
// 遍历取每一项的首字母
for (var i = 0; i < len; i++) {
arrStr[i] = arrStr[i].substring(0, 1).toUpperCase() + arrStr[i].substring(1);
}
return arrStr.join(" ");
}
//
console.log(myCap('the quick brown fox ddd'));
// 7、写一个函数找出传入的字符串中最长的单词 例如:输入findLongest('Web Development Tutorial'); 返回 Development
function findLongest(str) {
var arrFind = str.split(" "); // 将字符串转化为数组
var len = arrFind.length;
var maxLen = ""; // 定义变量接受最大值,初始为数组的第一项
// 遍历数组中的每一项,进行长度大小对比
for (var i = 0; i < len; i++) {
if (arrFind[i].length > maxLen.length) maxLen = arrFind[i];
}
return maxLen;
}
console.log(findLongest('Web Development Tutorial f'));
// 8、封装函数 实现toUpperCase方法 例如: 输入myUpperCase("hello"); 返回HEllo charCodeAt()方法
function myUpperCase(str) {
var len = str.length;
var arrStr = str.split("");
var arr = [];
for (var j = 0; j < len; j++) {
if (arrStr[j].charCodeAt() >= 97 && arrStr[j].charCodeAt() <= 122) { // 如果是小写,进入此判断
arr[j] = String.fromCharCode(arrStr[j].charCodeAt() - 32); // 将小写转换为大写
} else { // 如果不是小写
arr[j] = arrStr[j]; // 返回本身
}
}
return arr.join("");
}
console.log(myUpperCase("Hello"));
// 9、封装函数 实现数组sort的方法(参考冒泡排序)例如:输入mySort([2,33,41,10,5]); 返回 [2,5,10,33,41]
function mySort(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1; j++) {
var basket; // 定义一个箩筐,方便两个值互换
if (arr[j] > arr[j + 1]) {
basket = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = basket;
}
}
}
return arr;
}
console.log(mySort([2, 33, 41, 10, 5]));
// 10、封装函数 重复输出字符串。例如:输入repeat("abc", -2); 返回abc;输入repeat("abc", 3); 返回abcabcabc;输入repeat("abc", 2); 返回abcabc
function repeat(str, num) {
var str1 = ""; // 定义变量接受遍历后的结果
// 1、判断num的值,为负或等于0时返回本身
if (num <= 0) {
return str;
} else if (num > 0) { // 为正遍历叠加他本身num遍
for (var i = 0; i <= num - 1; i++) {
str1 += str;
}
return str1;
}else{ // 其他情况返回它本身
return num;
}
}
console.log(repeat("abc", 6))
//
</script>
</body>
</html>
以上是我练习字符串方法所写,还有很多需要精进和修改的内容,欢迎指出,谢谢!!!

浙公网安备 33010602011771号