我有一个input.txt
个文件,其中包含3列:
1 0 0
2 8 8
3 272 280
4 462 742
5 702 1,444
6 990 2,434
7 1,326 3,760
8 1,691 5,451
9 2,200 7,651
10 2,640 10,291
...
我需要一个函数(jQuery或javascript)来查找input.txt
上的一行,然后返回第三列中包含值的行!
示例:
HTML文件
...
<script type="text/javascript">
var numberX = document.getElementById('id_x').value;
//FUNCTION
//var result = return of the function;
</script>
如果numberX = 3,760
,该函数打开我的文件,请检查所有最后一列,直到找到该号码并返回7,所以result = 7
感谢您的帮助!
答案 0 :(得分:2)
尝试这样的事情:
var xhr = new XMLHttpRequest();
var data = null;
xhr.open("GET", "input.txt", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
data = xhr.responseText.split('\n');
data = data.map(function(row) {
return row.split(/\s+/);
});
}
};
xhr.send();
var getRecord = function(lastValue) {
return data.find(function(row) {
return row[2] === lastValue;
})[0];
};
你会像这样使用它:
getRecord('3,760')
答案 1 :(得分:0)
首先,您需要找到一种方法来读取您的文件。尝试使用XMLHttpRequest。
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "input.txt", false);
xhttp.send();
答案 2 :(得分:0)
您拥有XMLHttpRequest
对象的真实文件,并将结果处理为字符串。
我有一个快速的plunker演示。
var value = '3,760';
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', 'data.txt');
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
var text = xmlhttp.responseText;
var rows = text.split('\n');
for (var i = 0; i < rows.length; i++) {
var columns = rows[i].split(' ');
for (var j = 0; j < columns.length; j++) {
if (columns[j] == value)
alert(columns[0]);
}
}
}
}
xmlhttp.send();