2017-07-28 82 views
0

我有點迷失在搞清楚JavaScript的邏輯。JavaScript給元素鍵陣列

目前,我提取每個元素並將它們推入數組。

當我想要訪問對象元素時,我很困難。

這是在文本文件中的數據:

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

當我訪問第一陣列rowCells[0]。它返回我

1 
2 

這是第一列本身。

我希望它能返回第一行。預期功能如下:

1-推一切陣列

2-給予像第一列元件鍵是no,type,header,content,score

3-搜索所有基於元素鍵的行如type=2

4-根據類型搜索,然後顯示內容。

有什麼建議嗎? 在此先感謝。

<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

真的很感謝您的回答,但讓我們假設如果我只想顯示特定元素,例如type = 3。因此,生病需要將元素推到一個關鍵點,以便我匹配標準,然後只將它放入表格中。 – FreedomPride

+0

所以當你生成它時添加一條if語句。 'var cells = row.split(/#/ g); if(cells [0] ==「2」){} else {}' – epascarello