Javascript 使用替换为返回数组的最后一个值
我有一个for循环,在对象内部有一个数组。它将替换,但只会更改数组后面的单词Javascript 使用替换为返回数组的最后一个值,javascript,Javascript,我有一个for循环,在对象内部有一个数组。它将替换,但只会更改数组后面的单词 <textarea id='inp'></textarea> <button onClick='rd()'> k m8 </button> <div id='res'> </div> <script> var rd = function() { var rep = ""; var inpt = document.getElementB
<textarea id='inp'></textarea>
<button onClick='rd()'>
k m8
</button>
<div id='res'>
</div>
<script>
var rd = function() {
var rep = "";
var inpt = document.getElementById('inp').value;
for (i = 0; i < dict.before.length; i++) {
var rep = inpt.replace(dict.before[i],dict.after[i]);
}
document.getElementById('res').innerHTML = rep;
}
var dict = {
before : ["for","to","too"],
after : ["4","2","2"]
}
</script>
k m8
var rd=函数(){
var rep=“”;
var inpt=document.getElementById('inp').value;
对于(i=0;i
如果在before数组的末尾,值是“this”,after是“that”,则每个数组中的所有其他字符串都不起作用,它们不会替换。这是因为在
for
循环的每次迭代中,您都会覆盖rep
变量。您只需使用原始的init
执行替换,即更改此行:
var rep = inpt.replace(dict.before[i],dict.after[i]);
inpt = inpt.replace(dict.before[i],dict.after[i]);
……这一行:
var rep = inpt.replace(dict.before[i],dict.after[i]);
inpt = inpt.replace(dict.before[i],dict.after[i]);
并使用替换的inpt
设置innerHTML:document.getElementById('res')。innerHTML=inpt代码>
请参见下面的工作示例:
var rd=function(){
var rep=“”;
var inpt=document.getElementById('inp').value;
对于(i=0;i
k m8
问题是它只替换一次,而当它应该在之后替换时,它不会。