javascript – 如何不敏感地搜索JSON文件的关键案例

前端之家收集整理的这篇文章主要介绍了javascript – 如何不敏感地搜索JSON文件的关键案例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个如下的 JSON对象,
"Data Center": {
        "TMSLevel2": {
            "Comp-NX2/4/5/6K": "NX2/4/5/6K","Comp-NX3K": "NX3K","Comp-NX7K": "NX7K","Comp-NX9K": "NX9K","Comp-ACI": "ACI"
         }
}

我将该文件命名为map.js,并从Node JS导入var map = require(‘./map.js’).
我正在访问它,如console.log(map [“Data center”] [“TMSLevel2”] [name]).现在名称为“Comp-NX3K”或“Comp-NX3k”或“Comp-nx3K”.

当“Comp-NX3K”打印相应的值时.但是,如果是“Comp-nx3K”,则打印“未定义”,因为没有匹配的值.
如何解决

解决方法

您可以创建一个函数来执行正则表达式检查:
function findValueOfProperty(obj,propertyName){
    let reg = new RegExp(propertyName,"i"); // "i" to make it case insensitive
    return Object.keys(obj).reduce((result,key) => {
        if( reg.test(key) ) result.push(obj[key]);
        return result;
    },[]);
}

使用示例

let result = findValueOfProperty(map["Data center"]["TMSLevel2"],name)
console.log(result);

你可以把它做成一个原型功能,让我更进一步

Object.prototype.find = function(propertyName) {
    return findValueOfProperty.bind(this,this);
};

并称之为这样

var result = map["Data center"]["TMSLevel2"].find(name);
console.log(result);
原文链接:https://www.f2er.com/js/152704.html

猜你在找的JavaScript相关文章