JS 字符串方法 重写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/*---返回所有索引----*/
// 1.写一个函数,参数为1.一个字符,2.一个字符串,返回这个字符出现在这个字符串的第几个位置,如果没有该字符,则返回-1
function isHere(n, str){
let arr = []; //定义一个数组存储位置的索引
for(let i=0; i<str.length; i++){ //遍历字符串的每一个,匹配传入字符的第一个,假设索引为n,传入字符串长度为m
if(str[i] === n[0]){
if(cut(i, i+n.length, str) === n){ //从n开始截取到m,比较截取出来的和传入的是否相等,相等就保存索引
arr.push(i);
}
}
}
if(arr.length>0){ //若arr的长度为0,则这个字符串没有匹配项
return arr;
}else{
return -1;
}
}
// console.log(isHere('ss', 'adsasfsradssbn'));
/*---截取字符串----*/
//2.写一个函数,参数为1.截取字符串的起始位置,2.截取字符串的结束位置,要截取的字符串,最后根据函数参数返回对应截取的字符串
function cut(start, end, str){
let arr = [];
for(let i=start; i<end; i++){
arr.push(str[i]);
}
return arr.join('');
}
// console.log(cut(2, 4, 'abcdefg'));
/*---分割字符串----*/
//3.写一个函数,参数为1.一个字符,2.一个字符串,根据这个字符 将 传入的字符串 分割成多个字符串,并用数组返回这些分割的字符串
function divisionMore(n, str){
let arr = [];
let isR = isHere(n, str); //找到传入字符串在整个字符串的位置
let first = 0; //从第一个字符开始比较
for(let i=0; i<isR.length; i++){
if(cut(first, isR[i], str)){
arr.push(cut(first, isR[i], str));
}
first = isR[i]+n.length;
}
if(cut(first, str.length, str)){
arr.push(cut(first, str.length, str))
}
console.log(arr);
}
divisionMore('ds', ' d sff dscd ds fss');
// 4.写一个函数,参数为
// 1.一个字符串,返回这个字符串的反向字符串。
function reverse(str){
let arr = [];
for(let i=str.length-1; i>=0; i--){
arr.push(str[i]);
}
console.log(arr.join(''));
}
// reverse('abcdefg');
</script>
</body>
</html>