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

时间:2015-12-04 11:00:24

标签: javascript jquery arrays

在使用JQuery在页面上显示结果后,我正在尝试替换动态Feed中的链接。

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

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

因此,如果循环找到VALUE'hello',则将其替换为'hi',如果它找到'how',则将其替换为'I'......等等。

6 个答案:

答案 0 :(得分:1)

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

var arr1 = ['hello','how','are','you'];
var arr2 = ['hi'   , 'I' ,'am' ,'ok'];

var str = "hello, my friend. how are you doing? Let me say it again: hello, hello, hello";

for (var i = 0; i < arr1.length; i++)
{
  while (str.indexOf(arr1[i]) > -1) 
    str = str.replace(arr1[i], arr2[i]);
}

document.body.innerText = str;

答案 1 :(得分:1)

尝试类似

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

这样,如果array2和array1的长度不同,你就不用担心了。 :)

答案 2 :(得分:0)

对于循环中的每个word

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

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

答案 3 :(得分:0)

ARRAY1 = ['hello','how','are','you'];
ARRAY2 = ['hi'   , 'I' ,'am' ,'ok'];
value = 'hello';
if(ARRAY2[ARRAY1.indexOf(value)]>-1){
   console.log(ARRAY2[ARRAY1.indexOf(value)]);
}

答案 4 :(得分:0)

如果要替换所有

,请尝试此操作
for(var i = 0; i< ARRAY2.lenght; i++){
ARRAY1[i] = ARRAY2[i];

//or
ARRAY2[i] = ARRAY1[i];
}

答案 5 :(得分:0)

试试这个。

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");