[英]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.