Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Arrays - Fatal编程技术网

使用数组元素进行搜索并使用javascript替换所有元素?

使用数组元素进行搜索并使用javascript替换所有元素?,javascript,arrays,Javascript,Arrays,喂,我有一根绳子 'I am abc1, my age is abc2 and I live in abc3, abc1' 和数组 ['abc1/xyx1', 'abc2/xyx2', 'abc3/xyx3'] 我正在尝试执行搜索,并以下面的方式使用数组的每个元素替换字符串上的所有 replace abc1 by xyz1, abc2 by xyz2 etc.. i、 e.脚本运行后,输出字符串将 I am xyz1, my age is xyz2 and I live in xyz3,

喂,我有一根绳子

'I am abc1, my age is abc2 and I live in abc3, abc1'
和数组

['abc1/xyx1', 'abc2/xyx2', 'abc3/xyx3']
我正在尝试执行搜索,并以下面的方式使用数组的每个元素替换字符串上的所有

replace abc1 by xyz1, abc2 by xyz2 etc..
i、 e.脚本运行后,输出字符串将

I am xyz1, my age is xyz2 and I live in xyz3, xyz1
这就是我迄今为止所尝试的

var myString = 'I am abc1, my age is abc2 and I live in abc3, abc1';
var myArray = ['abc1/xyx1', 'abc2/xyx2', 'abc3/xyx3'];
for (var i=0; i<=myArray.length; i++){
var a1 = myArray[i];
var xs = a1.split("/");
var new1=xs[0];
var new2=xs[1];
var replaced = myString.replace(/new1/g, new2);
}
document.write(replaced);
var myString='我是abc1,我的年龄是abc2,我住在abc3,abc1';
var myArray=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
对于(var i=0;i尝试这种方法

首先拆分
keys/values
,得到一个新数组(
keyValue
),其中包含新旧单词。然后我迭代
keyValue
,并用它的值替换
文本

var text='我是abc1,我的年龄是abc2,我住在abc3,abc1';
变量词=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
var keyValue=words.map(项=>{
var arr=item.split('/');
返回[arr[0],arr[1]];
});
keyValue.forEach(项=>{
text=text.replace(新的RegExp(项[0],'g'),项[1]);
});

console.log(text);
基本上你循环了太多的一个,取
i
,你需要变量的值作为正则表达式

您可以使用构造函数并构建新的正则表达式对象

最后,您需要替换同一个字符串并将其分配给同一个字符串,否则您已经替换了该字符串,但您只能返回最后一个替换

var myString='我是abc1,我的年龄是abc2,我住在abc3,abc1',
myArray=['abc1/xyx1','abc2/xyx2','abc3/xyx3'],
i、 xs,new1,new2;
对于(i=0;iconsole.log(myString);
您可以使用符号对
单词
数组进行迭代,并在每个循环中使用拆分元素
w
来创建一个数组变量
a
,使用两个索引元素创建正则表达式并调用:

var text='我是abc1,我的年龄是abc2,我住在abc3,abc1';
变量词=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
words.forEach(函数(w){
var a=w.分割('/');
text=text.replace(新的RegExp(a[0],'g'),a[1]);
});
console.log(text);
功能性方法:

var text='我是abc1,我的年龄是abc2,我住在abc3,abc1';
变量词=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
var结果=单词。减少((文本,单词)=>{
var[oldWord,newWord]=word.split('/');
返回text.replace(newregexp(oldWord'g'),newWord);
},文本);

console.log(result);
需要解决的一件事,我想,您是否可以稍微解释一下您的方法,我对javascript不太熟悉,所以不了解您的方法,我已经有一段时间没有看到您使用
进行
循环了。+1。