繁体   English   中英

Javascript 在数组中每隔一个数字后添加一个换行符

[英]Javascript add a break line after every other number from array

我有一个返回一些数字的数组,例如 222.000,333.000,444.000,555.000。 理想情况下,我想要格式化,以便在每隔一个数字之后放置一个分界线“\n”。 即会像

222.000,333.000
444.000,555.000

可以通过修改下面的行来完成吗?

n107 = parseFloat(output1),
n108 = parseFloat(output2),
n109 = parseFloat(output3),
n110 = parseFloat(output4),
list = [];

 // add values to array if they're not NaN or > 0
if (n1) {
list.push(n1);
}

if (n2) {
list.push(n2);
}
if (n3) {
list.push(n3);
}

if (n4) {
list.push(n4);
}
if (n5) {
list.push(n5);
 }

 if (n6) {
list.push(n6);
}

// combine values into a string separated with commas    
document.getElementById('inputTextToSave').innerHTML = list.join(",");

这不是最佳解决方案,但可以

 n107 = parseFloat("222.00"), n108 = parseFloat("333.00"), n109 = parseFloat("444.000"), n110 = parseFloat("55.00"), list = [n107,n108,n109,n110]; // combine values into a string separated with commas //document.getElementById('inputTextToSave').innerHTML = list.join("</br>"); var j =1; var htmlString = ''; for(var i =0; i< list.length; i++){ if(j<2){ htmlString += list[i]+","; j++; }else{ htmlString += list[i]+"</br>"; j=1; } } document.getElementById('inputTextToSave').innerHTML = htmlString; 
 <div id="inputTextToSave"></div> 

您需要在循环中创建自己的字符串,而不是使用join()

创建循环的方法有很多...关键是检查循环中的索引以确定要使用的分隔符

 var list = [222.000,333.000,444.000,555.000]; var res = list.reduce((newStr, currVal, index) => newStr += (index % 2 ===1 ? ',' :'\\n') + currVal ); document.getElementById('inputTextToSave').innerHTML = res; 
 <pre id="inputTextToSave"></pre> 

可以通过使用Array.reduce方法来完成。

 const list = ['222.000', '333.000', '444.000', '555.000'] const result = list.reduce((memo, item, index) => { const comma = (index+1)%2 === 0 ? ',' : '' const lineBreak = (index+1)%2 === 0 ? '<br />' : '' memo += comma + item + lineBreak return memo }, '') document.getElementById('inputTextToSave').innerHTML = result; 
 <div id="inputTextToSave"></div> 

你可以试试这个 function

function addBrakes(array){

    let cutPoint = 3 // set where you want to cut
    
    for(i=1; i<=array.length; i++){
        if(i%cutPoint == 0){
            array.splice(i, 0, "<br>")
        }
    }
}

另外一个选项:

document.getElementById('inputTextToSave').innerHTML =    
    list.join(',').replace(/([^,]+,[^,]+),/g, '$1<br>')

暂无
暂无

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

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