2017-05-28 68 views
0

我有一個返回一些數字的數組,如222.000,333.000,444.000,555.000。理想情況下,我想格式化,以便在每隔一個數字後放置一個分隔符「\ n」。即將會像Javascript在數組中每隔一個數字後添加一個休息符

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(","); 

回答

1

這不是一個最佳solution.but它的工作原理

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>

+0

@Alexa這是你想要的? –

+0

我使用上面的列表,因爲我不想打印0zeros或NaN。我會看看您的示例是否允許我不打印0zeros或NaN。 thx –

0

您需要在循環中創建自己的字符串,而不是使用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>

0

它可以通過使用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>

+1

如果使用索引爲 – charlietfl

+0

的reduce()的第三個參數,則不需要聲明和增加'c'。改進了樣本。 – muratgozel

-1

另一種選擇:

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