【问题标题】:Check for matching key in object regardless of capitalization无论大小写如何,检查对象中的匹配键
【发布时间】:2015-08-10 11:23:29
【问题描述】:

给定一个密钥:'mykey'

并给定一个对象:Object {Mykey: "some value", ...}

并使用以下if (key in myObject) 语法检查匹配...

如何检查匹配的字符串而不考虑大写字母?

例如:键 mykey 应该匹配到对象中的 Mykey,即使 M 是大写的。


我知道有一个函数可以做到这一点:How to uppercase Javascript object keys?

我正在寻找是否有其他方法。

【问题讨论】:

  • 你不能,你是在问如何创建一个可以做到这一点的函数吗?
  • 您的检索函数将基于任意逻辑 shim 接受地图中的潜在冲突。我不认为这是一个内置功能,您最好将其作为自定义函数(如@adeneo 给出的示例)插入原型链并从中继承。

标签: javascript loops object search capitalization


【解决方案1】:

您可以创建一个函数来执行此操作,没有本机不区分大小写的方法来检查键是否在对象中

function isKey(key, obj) {
    var keys = Object.keys(obj).map(function(x) {
        return x.toLowerCase();
    });

    return keys.indexOf( key.toLowerCase() ) !== -1;
}

习惯了

var obj    = {Mykey: "some value"}
var exists = isKey('mykey', obj); // true

【讨论】:

  • 你是我的英雄兄弟
【解决方案2】:

按照这个例子

var myKey = 'oNE';
var text = { 'one' : 1, 'two' : 2, 'three' : 3};
for (var key in text){
if(key.toLowerCase()==myKey.toLowerCase()){
//matched keys
    console.log(key)
}else{
//unmatched keys
    console.log(key)
}

}

JavaScript: case-insensitive search

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    相关资源
    最近更新 更多