Javascript 使用循环将在一个数组中找到的值替换为与第二个数组相同的索引值?

Javascript 使用循环将在一个数组中找到的值替换为与第二个数组相同的索引值?,javascript,jquery,arrays,Javascript,Jquery,Arrays,在使用JQuery将结果显示在页面上之后,我尝试替换动态提要中的链接 基本上,这个想法是寻找ARRAY1的值,并用ARRAY2的相同索引值替换它们。例如: ARRAY1 = ['hello','how','are','you']; ARRAY2 = ['hi' , 'I' ,'am' ,'ok']; 因此,如果循环找到值“hello”,则将其替换为“hi”,如果找到“how”,则将其替换为“I”。。。依此类推。对于循环中的每个单词: var index = ARRAY1.indexOf(w

在使用JQuery将结果显示在页面上之后,我尝试替换动态提要中的链接

基本上,这个想法是寻找ARRAY1的值,并用ARRAY2的相同索引值替换它们。例如:

ARRAY1 = ['hello','how','are','you'];
ARRAY2 = ['hi'   , 'I' ,'am' ,'ok'];

因此,如果循环找到值“hello”,则将其替换为“hi”,如果找到“how”,则将其替换为“I”。。。依此类推。

对于循环中的每个
单词:

var index = ARRAY1.indexOf(word);
if (index >= 0) {
    word = ARRAY2[index];
}

缓存
indexOf
的结果可能有助于提高效率,具体取决于您输入的规模。

您只需对数组中的每个项目使用
replace

ARRAY1 = ['hello','how','are','you'];
ARRAY2 = ['hi'   , 'I' ,'am' ,'ok'];
value = 'hello';
if(ARRAY2[ARRAY1.indexOf(value)]>-1){
   console.log(ARRAY2[ARRAY1.indexOf(value)]);
}
var arr1=['hello'、'how'、'are'、'you'];
var arr2=['hi','I','am','ok'];
var str=“你好,我的朋友。你好吗?让我再说一遍:你好,你好,你好”;
对于(变量i=0;i-1)
str=str.replace(arr1[i],arr2[i]);
}

document.body.innerText=str如果要替换所有

for(var i = 0; i< ARRAY2.lenght; i++){
ARRAY1[i] = ARRAY2[i];

//or
ARRAY2[i] = ARRAY1[i];
}
for(变量i=0;i
试试这个

var ARRAY1 = ['hello','how','are','you'];
var ARRAY2 = ['hi'   , 'I' ,'am' ,'ok'];
var replaceValue = function(wordToReplace){
     var index = ARRAY1.indexOf(wordToReplace);
     ARRAY1[index] = ARRAY2[index];
}
replaceValue("hello");
试试像这样的东西

var result = ARRAY1.map(function (dt, i) {
  return ARRAY2[i]
});

这样,如果array2和array1的长度不同,您就不必费心了。:)

所以你的意思是说array1中的所有值都应该替换为array2?
indexOf()
将帮助你解决这个问题,只要找到它们。。。它们应该替换为array2中的等效索引值,例如,如果array1[3]不存在,循环应该跳过它,当它找到array1[4]时,应该替换为array2[4]的值,这是怎么可能的?所以你有一些未定义的元素?我们的想法是替换instagram订阅源中的链接,只让一些项目转到另一个链接,而不是instagram帖子的链接,数组1将手动创建,因为订阅源本身将限制一定数量的项目,而且中间的一些项目我们不想替换链接,应该跳过一些值……使用“映射”的对象(在本例中为映射)而不是
arr1
arr2
更有意义。您不需要在for循环中包含所有逻辑。例如,
映射['hello']
应该返回
'hi'