Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用替换为返回数组的最后一个值_Javascript - Fatal编程技术网

Javascript 使用替换为返回数组的最后一个值

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

我有一个for循环,在对象内部有一个数组。它将替换,但只会更改数组后面的单词

<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

问题是它只替换一次,而当它应该在之后替换时,它不会。