2016-07-03 28 views
1

我有一個csv-reader指令,讓我們用戶上傳一個csv文件。我注意到,當我上傳文件單詞之間的空格,例如:
ABC
ABC
ABC上傳csv文件時刪除空行angular

這被顯示ABC

ABC。我想刪除所有空白行不知道該怎麼做。 enter image description here

   var reader = new FileReader(); 
       reader.onload = function(e) { 
        var contents = e.target.result; 
        var rows = contents.split('\n');     

        // Check if the last row is empty. This works 
        if(rows[rows.length-1] ===''){ 
         rows.pop() 
} 
} 


    // this doesn't work for some reason. It doesn't detect the '' in the middle of the arrays. 

    for(var i=rows.length-1;i>0;i--){ 
     if(rows[i] === ''){ 
     rows.splice(i,1) 
     } 
    } 
+0

你可能在那裏還有一個\ r char(行不是空的)。 – K3N

回答

0

從它看起來你給什麼樣的,你要檢查,如果在csvModel每一項都是一個空字符串,而不是newValue

喜歡的東西:

for(var i=0 ;i< $scope.csvModel.length; i++){  
    if (csvModel[i] == "") { 
     $scope.csvModel.splice(i,1); 
    } 
} 
+0

無法拼接在前瞻性循環中。在未來的迭代中拋出索引。如果([i] ===「」){ array.splice(i,1)可以在反向循環時做到這一點,儘管 – charlietfl

+0

對於(var i = array.length-1; i> 0; i-){ ) } } – Angular

+0

@charlietfl這樣反向嗎?它仍然沒有刪除「」 – Angular

1

嘗試使用Array.prototype.filter()

var rows = contents.split('\n').filter(function(str){ 
    return str; 
}); 
+0

仍然返回數組中的空字符串......如果我做了行[3] ==='',它會給出假,但如果我做了行[rows.length-1] === '',它返回true – Angular

+0

在重現問題的重新創建演示文稿中創建演示 – charlietfl