我有一个对象,其中每个键都有对应的字符串数组
我想用\ <br>
var i = 0;
var obj = {
'one': ['hello\nworld', 'java\nscript'],
'two': ['hi\nworld', 'java\nscript\nis\nawesome']
}
for (let key in obj) {
let reg = new RegExp('\n', "g");
for (var i = 0; i <= obj[key].length; i++) {
document.body.innerHTML += obj[key][i].replace(/\n/g, '<br>');
}
}
答案 0 :(得分:1)
您可以将对象的Object.values
,flat
作为结果数组,将其map
替换为\n
的{{1}},然后是{{1 }}最终数组并将其附加到文档中:
<br />
答案 1 :(得分:0)
问题出在这里for(var i=0 ; i<=obj[key].length; i++)
。您正在使用i<=obj[key].length
。 i
的长度将大于array
的长度,并且会引发错误:
未捕获的TypeError:无法读取
replace
的属性undefined
您应该使用i < obj[key].length
。
一种更好的方法是使用join()
let obj = {'one' : ['hello\nworld','java\nscript'],
'two' : ['hi\nworld', 'java\nscript\nis\nawesome']}
for(let key in obj){
let reg = new RegExp('\n',"g");
document.body.innerHTML += obj[key].join('\n').replace(reg,'<br>');
}
答案 2 :(得分:0)
修复拼写错误<=
,应为<
或者有一个替换项:
var obj = {
'one': ['hello\nworld', 'java\nscript'],
'two': ['hi\nworld', 'java\nscript\nis\nawesome']
}
obj = JSON.parse(JSON.stringify(obj).replace(/\\n/g,"<br/>"))
for (let key in obj) {
for (var i = 0; i < obj[key].length; i++) {
document.body.innerHTML += obj[key][i];
}
}
答案 3 :(得分:0)
您可以使用此功能
C
在这里,您将要处理的字符串发送到function reemplazar(str, nval, find){
var nstr="";
var cadena= new RegExp(find, "g");
var ind = (str.match(cadena) || []).length;
for(var h=0; h<ind; h++){
if(h>0){
nstr = nstr.replace(find, nval);
}else{
nstr = str.replace(find, nval);
}
}
return (nstr==="") ? str : nstr;
}
参数中,str
param是所有出现的新值,而nval
param是您要搜索到的char或字符串find