我对 JavaScript 有点陌生,我正在尝试使用与字符串匹配的正则表达式替换数组元素,这是我尝试过的代码
<button onclick="myFunction()">ClickHere</button>
<p id="demo"></p>
<script>
function myFunction() {
var abc = ["deno", "eno","pqr","lenovo"];
var i,text;
for(i = 0; i < abc.length; i++) {
text += abc[i].replace(/no/i, "po");
document.getElementById("demo").innerHTML = text;
}
}
</script>
我想用“po”替换数组元素在数组元素字符串中遇到“no”的地方。
这就是我所期望的:
abc["depo","epo","pqr","lepovo"]
请您参考如下方法:
您可以对每个元素执行此操作:
for(var i=0; i < abc.length; i++) {
abc[i] = abc[i].replace('no', 'po');
}
或使用一行
abc = abc.map(function(x){return x.replace('no', 'po');});
或使用一行“箭头函数”:
abc = abc.map(x => x.replace('no', 'po'));
更改数组后,可以使用以下方法将其转换为字符串:
var text = 'abc[';
for ( var i = 0 ; i < abc.length ; i++ ) {
text+='\"'+abc[i]+'\"';
if ( i != abc.length - 1) {
text+=',';
}
}
text += ']';
测试:
function myFunction() {
var abc = ["deno", "eno","pqr","lenovo"];
abc = abc.map(x => x.replace('no', 'po')); // see other 2 alternatives above
var text = 'abc[';
for ( var i = 0 ; i < abc.length ; i++ ) {
text+='\"'+abc[i]+'\"';
if ( i != abc.length - 1) {
text+=',';
}
}
text += ']';
document.getElementById("demo").innerHTML = text;
}
<button onclick="myFunction()">ClickHere</button>
<p id="demo"></p>