繁体   English   中英

javascript将数组打印成段落

[英]javascript printing array into paragraphs

我正在尝试制作一个本地 html 来显示 txt 文件(也是本地)中的一些文本。 我用它来将文件读入数组并打印它:

<input type="file" name="files" id="inputfile">
<script type="text/javascript"> 
document.getElementById('inputfile')
.addEventListener('change', function() {
    var test=new FileReader();
    test.onload=function(){
        document.getElementById('output')
                .textContent=fl.result;
    }
    test.readAsText(this.files[0]);
})
</script>

但是,我想将它从数组中逐行打印到段落中(第一行进入标题,第二行进入段落,第三行进入标题等等......)。 有没有办法从数组中自动完成,或者我必须为每个人手动完成? 我在 javascript 方面有点绿色,所以我宁愿避免使用节点等。

如果标题和段落总是严格交替,您可以检查每个数组索引是奇数还是偶数,以决定是否将其包装在标题或段落标签中。 单程:

 arr = ["header", "paragraph", "header", "paragraph", "header", "paragraph"] joined = arr.map((el, i) => { return (i % 2 === 0) ? `<h1>${el}</h1>` : `<p>${el}</p>` ; }).join('') console.log(joined)

 const arr = ['Heading 1','Para1','Heading 2','Para2','Heading 3','Para3']; const result = arr.map((val, i) => i%2===0 ? `<h2>${val}</h2>` : `<p>${val}</p>`).join(''); document.getElementById('output').innerHTML = result ;
 <div id="output"></div>

把它放在你的代码中:

function arrToPar(arr){ //For JS-Array --> HTML content
    var out = "";
    for(var i = 0; i < arr.length; i++){
        out += arr[i] + "<br>";
    }
    return(out);
}

或者...

function arrToString(arr,joiner = " "){ //For JS-Array --> JS-String
    var out = ""; //The parameter "joiner", by default, is a space
    //This means that you only need to specify "arr", but you can do
    //a second parameter. This function behaves like arr.join(joiner).
    for(var i = 0; i < arr.length; i++){
        out += arr[i] + joiner;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM