2017-05-28 69 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>') 
相关问题