Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_String - Fatal编程技术网

Javascript 替换数组中的字符串

Javascript 替换数组中的字符串,javascript,arrays,string,Javascript,Arrays,String,我需要替换数组中的字符串。现在我正在使用一个forEach-循环和一个开关,这感觉不是很优雅: let result = []; source.forEach(el => { switch (el) { case 'replace': result.push('with this'); break; case ...: ...; default: result.p

我需要替换数组中的字符串。现在我正在使用一个
forEach
-循环和一个
开关,这感觉不是很优雅:

let result = [];
source.forEach(el => {
    switch (el) {
        case 'replace':
            result.push('with this'); break;
        case ...:
            ...;
        default:
            result.push(el);
    }
});
return result.join(',');
我想得到的是用另一个字符串替换元素,或者如果不匹配,则使用原始字符串


源阵列有50个元素,替换阵列有30个元素。

如果需要对阵列进行一对一操作,则首选
.map
功能:

return source.map(el => el === 'replace' ? 'with this' : el).join(',');
编辑我看到您已经更新了问题,实际上您有30个不同的字符串要替换。在这种情况下,您应该使用预先填充了“before”和“after”字符串的
映射

IIFE用于确保一次性初始化
映射
,并且在
映射
上关闭的返回函数被分配给
replaceFunc

> replaceFunc(['replace']);
"with this"
这是另一种选择

var result = source.map(function (e) {
    return e === 'replace' ? 'with this' : e;
});
var-sample=[“aaa”、“bbb”、“replaceMe”、“ccc”、“ddd”];
var result=sample.map(函数(ele,inx){
如果(ele==“replaceMe”){
返回“newText”;
}否则{
返回ele;
}
});

控制台日志(结果)如下,制作替换示例:-

  String originalString = "hello";
  String newString = originalString.replace('E', 'x');
  System.out.println( newString );
立即参考-

这个问题是关于JavaScript的,不是关于Java的!
newmap()
部分对我不起作用。但我不明白为什么。我没有得到一个错误,但是我也没有得到任何输出。不是
replace.get(el)
需要索引吗?它在Chrome54上对我有效(我假设你使用的是现代浏览器或解释器,因为你在问题中使用了ES6箭头语法)。
replace.get()
的参数只是键,因此在本例中是源数组中的一个单词。
  String originalString = "hello";
  String newString = originalString.replace('E', 'x');
  System.out.println( newString );