我有这个函数,用一个叫做“之后”的字符串替换indexOf(before)处的一个数组元素。除了我得到两个“ after”值而不是一个,这几乎可以正常工作
这是我的代码:
function myReplace(str, before, after) {
var strArr = [];
strArr = str.split(' ');
for (var i = 0; i < strArr.length; i++) {
strArr.splice(strArr.indexOf(before), 1, after);
}
return strArr;
}
myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");
这是它返回的内容:
[“ A”,“快速”,“棕色”,“狐狸”,“泄漏”,“上方”,“该”,“懒惰”,“泄漏”]
怎么了?
嗯,这里的问题真不幸!这是因为在找到元素4之后,indexOf返回-1(未找到其表达方式),并替换了数组中的最后一个(-1)。
function myReplace(str, before, after) {
var strArr = [];
strArr = str.split(' ');
for (var i = 0; i < strArr.length; i++) {
var index = strArr.indexOf(before);
if(index!=-1){
strArr.splice(index, 1, after);
}
}
return strArr;
}
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句