2016-05-17 3 views
3

私は新しい行で区切っているテキストファイルを持っています。しかしながら"undefined"を返す改行で分割

$.get("2016-05-06.log", function(data){ 
    var lines = data.split("\n"); 
    $.each(lines, function(n, elem) { 
     var piece = elem.split("]"); 
     console.log(n, ": ", elem); 
    }); 

、アレイlinesの最初の項目、そうn = 0、未定義戻っています。この配列はゼロインデックス化されていませんか?または私は何かを逃していますか?

EDIT:ここに私のログファイルのwhatsのサンプルがあります。

[Wed May 04 13:48:44 2016] [error] [client 0.0.0.0] PHP Warning: Missing argument 1 for getTypeOptionList(), called in /var/www/...proposal.php on line 969 and defined in /var/www/Intranet2/trunk/contracts/functions.php on line 149, referer: http://intranet/... 
[Wed May 04 13:48:44 2016] [error] [client 0.0.0.0] PHP Warning: /var/www/...proposal.php on line 1048 and defined in /var/www/Intranet2/trunk/contracts/functions.php on line 373, referrer: http://intranet/... 
+4

? –

+0

は、データに期待する内容が含まれていない可能性があります。私たちがまだ助けてくれる十分な情報はここにありません。 (ほとんどのマシンでf12またはctrl + yを押す)行番号の一番左の端をクリックして2行目にブレークポイントを設定し、ページをリロードします。ブレークポイントで停止する必要があります。データを選択して選択項目の上にカーソルを置くと、内部の内容を確認できるようになり、前提条件の正当性をチェックできます。 –

+0

ファイルにバイナリデータが含まれていますか?ファイルタイプとは何ですか? 'text/x-log'? – guest271314

答えて

0

コードが正しく動作します。

多くの理由が必要です。

あなたのファイルにはutf-8 BOM要素などがあります。

いくつかのtest.logファイルがあることを証明し、データを順番に書き込んでからコードを確認してください。 おそらく、行varが空であることを確認することをお勧めします。ファイルには何が

$(function() { 
 
    $.get("http://num8er.me/test.log", function(data){ 
 
    var lines = data.split("\n"); 
 
    for(var n = 0; n < lines.length; n++) { 
 
     var line = lines[n].toString().replace(/^\s+|\s+$/gm,''); 
 
     if(line != '') { 
 
     alert(n + ": " + line); 
 
     } 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+1

ありがとう、これは働いた!私は "未定義"のメッセージを受け取っていたので、 'lines!= NULL'をチェックしていました。私が空白行を分割しようとしていたことが原因であることが分かりました。 – dattebane

関連する問題