繁体   English   中英

过滤JavaScript中的某些行

[英]Filter Certain Lines In Javascript

我正在尝试使用Javascript从输入中过滤某些行,而我有以下输入:

Interface name : Wi-Fi 5
There are 15 networks currently visible.

SSID 1 : 9bf6fe
    Network type            : Infrastructure
    Authentication          : WPA2-Personal
    Encryption              : CCMP

SSID 2 : melitaWIFI
    Network type            : Infrastructure
    Authentication          : Open
    Encryption              : None

在这种情况下,如何使用JS仅每五行提交一次?

如果您的输入存储在变量中:

var input = "a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl";

var lines = input.split("\n");
for (i = 4; i < lines.length; i += 5) {
    console.log(lines[i]);
}

取得第5行

首先,您可以使用split()方法获取行数组:

var lines = input.split("\n");

然后,您可以遍历此数组,并且对于第5个项目,可以将行添加到新数组:

var results = [];

for(var i = 0; i < lines.length; i++){
    var line = lines[i];  
    if((i + 1) % 5 == 0)
        results.push(line);
}

这是一个有效的例子

获取特定键的值

如果您想获取诸如"Network type"值,则可以创建一个函数来查找所有监视键值:

function getValuesForKey(lines, key) {
    var results = [];

    for (var i = 0; i < lines.length; i++) {
        var line = lines[i];
        var pairs = line.split(":");
        if (pairs.length == 2 && pairs[0].trim() == key) {
            results.push(pairs[1].trim());
        }
    }

    return results;
}

var lines = input.split("\n");
var results = getValuesForKey(lines, "Network type");
console.log(results);

这是一个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM