使用ignorecase查找对象中的键

Pav*_*ari 2 javascript

我想在不区分大小写的对象中找到键。

对象非常大,因此我无法修改该对象以使所有键都变为小写/大写。

例如。

var _columns = {...} 现在需要查找Id密钥是否存在。目前,我正在使用其他解决方案。

if (this._columns['Id']) {
    this._idColumnName = 'Id';
} else if (this._columns['id']) {
    this._idColumnName = 'id';
} else if (this._columns['ID']) {
    this._idColumnName = 'ID';
}
Run Code Online (Sandbox Code Playgroud)

S有任何方法可以通过使用JavaScript中的任何模式或任何其他方式来检查键的存在。

Rob*_*sen 5

使用Array.prototype.find()

function containsKey(object, key) {
  return !!Object.keys(object).find(k => k.toLowerCase() === key.toLowerCase());
}

// example
let o = {
  Id: "001"  
};

console.log(containsKey(o, 'ID')); // prints true
console.log(containsKey(o, 'id')); // prints true
console.log(containsKey(o, 'Id')); // prints true
Run Code Online (Sandbox Code Playgroud)

如果要返回属性名称而不是布尔值,请!!从返回的值中删除。

function findKey(object, key) {
    return Object.keys(object).find(k => k.toLowerCase() === key.toLowerCase());
}
Run Code Online (Sandbox Code Playgroud)