数组充满了正则表达式,匹配字符串,返回路径

时间:2017-09-07 05:10:07

标签: node.js node-red

仍然非常初学者,只需编辑以使其更有意义

以下是有效负载示例。

{
"Status":
    {
    "result":[
        {
            "LastUpdate":"2017-09-07 06:47:09",
            "Type":"2",
            "Value":"' s the inside temperature",
            "idx":"4"
        }
    ],
    "status":"OK",
    "title":"GetUserVariable"
    },
"Devices":
    {
        "28":
        {
            "rid":"28",
            "regex":"(the )?(AC|(Air( )?(Con)?(ditioner)?))( Power)?( )?$/i"
        },
        "71":
        {
            "rid":"71",
            "regex":"(the )?inside temp/i"
        }
    }
}

我想过滤“Devices”数组,以便与Status.result [0] .Value匹配。

我有以下代码正常工作,但它正在反向工作,它返回匹配的字符串,而不是过滤后的数组,只是不知道如何反转它。

var devices = msg.payload.Devices;
var request = [ msg.payload.Status.result[0].Value ];

var matches = request.filter(function (text) {
    return devices.some(function (regex) {
        var realregex = new RegExp(regex, "i");
        return realregex.test(text);
    });
});

msg = { topic:"Inputs", payload: { devices:devices, request:request } };

msg2 = { topic:"Output", payload: { matches:matches } };

return [ [ msg, msg2 ] ];

谢谢, WOB

0 个答案:

没有答案