2017-07-28 5 views
0

JavaScriptのロジックを理解するにはちょっと迷っています。配列にキー要素を与えるJavaScript

現在、私はすべての要素を抽出し、配列にプッシュしています。

私はオブジェクト要素にアクセスしたいときに苦労しています。私は最初の配列rowCells[0]にアクセスするとき

1#1#test#Tombstone#8#Yes 
2#3#test2#Tombstone3#81#Yes 

これは、テキストファイル内のデータです。それは私を返す

1 
2 

これは最初の列自体です。

私は最初の行を返すことを望んでいました。意図された機能は以下の通りである:最初の列のような要素のキーを与える配列

2-へ

1-プッシュすべてが要素キーに基づいてno,type,header,content,score

3-検索全ての行であるようなtype=2

4-タイプとnoに基づいて検索し、内容を表示します。

提案がありますか? ありがとうございます。

<script type="text/javascript" 
    src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 

<script> 
$.ajax({ 
    url: 'content.txt', 
    dataType: 'text', 
}).done(successFunction); 


function successFunction(data) { 
    var allRows = data.split(/\r?\n|\r/); 
    var table = '<table>'; 
    for (var singleRow = 0; singleRow < allRows.length; singleRow++) { 
    var rowCells = allRows[singleRow].split('#'); 
    //table += rowCells.toString(); 

    table += '<br>'; 
    var first_word = rowCells; 
    table += first_word; 


    } 
    $('body').append(table); 
} 
</script> 
+0

なぜテーブルがBRタグを持っているのですか? – epascarello

+0

@epascarelloはラインの内容をテストするために冗長です。 – FreedomPride

答えて

1

私はsplit、reduce、split、joinを使用してテーブルを構築します。

var str = `1#1#test#Tombstone#8#Yes 
 
2#3#test2#Tombstone3#81#Yes` 
 

 
var rows = str.split(/\n/g).reduce(function (str, row) { 
 
    return str + "<tr><td>" + row.split(/#/g).join("</td><td>") + "</td></tr>"; 
 
}, "") 
 

 
var table = "<table><tbody>" + rows + "</tbody></table>" 
 
$("#out").append(table)
td { border: 1px solid black; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="out"></div>

+0

はあなたの答えを本当に感謝していますが、タイプ= 3のような特定の要素を表示したいとします。だから、要素をキーにプッシュして基準に一致させる必要があるので、それをテーブルにするだけです。 – FreedomPride

+0

それを生成するときにif文を追加してください。 'var cells = row.split(/#/ g); if(cells [0] == "2"){} else {} ' – epascarello

関連する問題