A、 B 、 C 是 3 个字符串。把 A 中包含的所有 B 都替换为 C ,如果替换以后还有 B 就继续替换,直到 A 不包含 B 为止。
请编写程序实现以上功能。不允许使用系统提供的字符串比较、查找和替换函数
//原生indexOf重写用来查找
String.prototype.myIndexOf = function(str) {
let sourceArr = this.split('');
let num = -1;
for (let i in sourceArr) {
if (sourceArr[i] === str.slice(0, 1)) {
if (str === this.slice(i, Number(i) + str.length)) {
num = i
}
}
}
return num
}
//原生Map重写用来替换
Array.prototype.myMap = function(fn, context) {
let arr = this;
let temp = [];
for (let j = 0; j < arr.length; j++) {
let result = fn.call(context, arr[j], j, arr);
temp.push(result);
}
return temp;
}
let a1 = 'aaaBb13cccBb13ffBb13';
let b1 = 'Bb13';
let c1 = 'Cc4';
function find(a, b, c) {
while (true) { //while a中没有b时结束
let findnum = a.indexOf(b); //获取a中b的开始下标
if (findnum != -1) { //通过下标查询
let Aarr = a.split(''); //切割成数组
a = '';
let count = 0;
Aarr.myMap((item, index) => {
if (index >= findnum && index < findnum + b.length) {
if (count == 0) {
a += c;
}
count++;
} else {
a += Aarr[index];
}
})
} else {
return a;
}
}
}
let f = find(a1, b1, c1);
console.log(f);
函数myIndexOf()
仍有问题,望大佬指点