我想在不区分大小写的对象中找到键。
对象非常大,因此我无法修改该对象以使所有键都变为小写/大写。
例如。
我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中的任何模式或任何其他方式来检查键的存在。
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 trueRun 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)