javascript - 如何在nodejs中比较两个字符串源和目标与全名

标签 javascript json node.js alexa-voice-service

将两个字符串与第三个字符串进行比较,如 JSON 数组全名

var source = intentObj.slots.toPlazaName.value.toString(); // Jaipur 
var destination = intentObj.slots.fromPlazaName.value.toString(); // Kishangarh

匹配 "FullName": "Jaipur - Kishangarh Section",

我的回应

{
            "projectid": 10,
            "FullName": "Kishangarh -Ajmer- Beawar",
            "piu": "PIU-Ajmer",
            "NumberofLanes": "6L",
            "NHNo_New": "8",
            "NHNo_Old": "8",
            "Total_Length": 92,
            "state_name": "Rajasthan"
        },
        {
            "projectid": 15,
            "FullName": "Reengus - Sikar",
            "piu": "PIU-Sikar",
            "NumberofLanes": "4L",
            "NHNo_New": "52",
            "NHNo_Old": "11",
            "Total_Length": 44,
            "state_name": "Rajasthan"
        },
        {
            "projectid": 20,
            "FullName": "Rajsamand - Gangapur - Bhilwara",
            "piu": "PIU-Chittorgarh",
            "NumberofLanes": "4L",
            "NHNo_New": "758",
            "NHNo_Old": "76B",
            "Total_Length": 87.25,
            "state_name": "Rajasthan"
        },

我的创建函数

function findSourceDestination(source, destination, callback) {
    var matchPlazas = [];
    var projectFullName = [];

    for (var i = 0; i < nhai_response.GetALexDataInJSONResult.length; i++) {
        // console.log(nhai_response.GetALexDataInJSONResult[i]["FullName"]);
        if (nhai_response.GetALexDataInJSONResult[i]["FullName"].includes(source)) {
            // console.log("source " + nhai_response.GetALexDataInJSONResult[i]["FullName"]);
            projectFullName.push(nhai_response.GetALexDataInJSONResult[i]);
        }
    }

    for (var j = 0; j < projectFullName.length; j++) {
        if (projectFullName[j]["FullName"].includes(destination)) {
            console.log('----------------' +projectFullName[j]["FullName"] + '----------destination '+ destination +'------------');
            matchPlazas.push(projectFullName[j]);
        } 

    }

    callback(matchPlazas);
}

我有另一个全名字符串。我有另外两个字符串。我想将源字符串与我的全名匹配,第一个单词目标将匹配或包含全名,而不是像源字符串那样的第一个字符串。

请帮帮我。

最佳答案

如果我很好地理解了你的问题,并且你需要源是 FullName 的第一部分,而 destination 需要在 FullName 的其余部分,这个函数就可以了

function findSourceDestination(source, destination, callback) {
    var matchPlazas = [];
    var projectFullName = [];

    for (var i = 0; i < nhai_response.GetALexDataInJSONResult.length; i++) {
        let fullName = nhai_response.GetALexDataInJSONResult[i]["FullName"];
        let fullNameParts = fullName.split("-");
        if (fullNameParts[0].trim().includes(source) && fullName.includes(fullName)) {
            matchPlazas.push(nhai_response.GetALexDataInJSONResult[i]);
        }
    }

    callback(matchPlazas);
}

关于javascript - 如何在nodejs中比较两个字符串源和目标与全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48987310/

相关文章:

java - 是否可以在javascript中反序列化java对象

javascript - 如果我有两个共享一个域的 iframe,一个上的 postmessage 会触发另一个上的消息事件吗?

java - 带有 JSON 的 Jersey RESTful 服务

javascript - 找到两点之间 Angular 最快方法

Javascript从路径中获取文件名和类型作为字符串

ios - 解析 JSON 对象和子元素

json - 解码 JSON 响应时遇到问题

json - Darkcoin nomp 矿池支付处理错误且缺少 ui

mysql - Sequelize 中每个 api 调用期间的动态数据库连接,其中有 'n' 没有数据库

node.js - nodejs中的转发代理