从文本文件创建的搜索/过滤Javascript数组

问题描述 投票:0回答:1

我希望有人有想法或可以给我一些有关我的问题的意见。

开始场景:.txt日志文件是由软件创建的,我尝试创建一个网站查询,该查询显示该日志中包含的错误消息,彼此之间清楚地排列。

到目前为止,我已经拥有将文件读取为变量,将内容映射为数组并将其拆分为单行的代码。

<html>
<div>
Select Errorlog:
<input type="file" id="fileInput">
</div>

<pre id="displayFile"></pre>
<script>

   var fileInput = document.getElementById('fileInput');

   fileInput.addEventListener('change', function(e) {

          var file = fileInput.files[0];
          var reader = new FileReader();

   reader.onload = function(e) {

          var dateiinhalt = reader.result;
          var arr = dateiinhalt.split("\n");

   document.getElementById("Errorlog").innerHTML = arr[1];

};
 reader.readAsText(file);           
});
</script>
<p id="Errorlog"></p>
</html>

这很容易,但是现在我很想过滤数组或显示数组的某些索引值。

日志文件本身看起来像

2020-02-26 00:00:00 | ERROR | Message
2020-02-26 00:00:01 | INFO | NewEvent
2020-02-26 00:00:01 | ERROR | Message 2

目标是显示包含“错误”的每一行。我尝试了几种过滤器/搜索功能,但尝试的所有方法均无效(例如array.prototype.filter或indexOf)。

javascript arrays search filter
1个回答
0
投票

假设在.split()之后,您有一个日志行数组作为字符串,一种用于过滤错误的简单方法是:

var arr = dateiinhalt.split("\n");
arr = arr.filter(line => line.indexOf("ERROR") >= 0);

或更旧的样式:

arr = arr.filter(function(line) { return line.indexOf("ERROR") >= 0; });
© www.soinside.com 2019 - 2024. All rights reserved.