<分区>
我有一个特定的对象,其中属性的确切大小写无法提前知道。例如,属性名称可能是“AbC”或“Abc”或“abc”等。
但是,我知道只有一个存在。也就是说,我知道不能同时属性“AbC”和属性“abc”。
属性名称本身是区分大小写的。因此,如果它存储为 theObject.Abc 并且我查找 theObject.abc,我将找不到该属性。
在我的对象中可能有 1,000 个这样的属性。
这是可能的,但效率低下,如果每次我想进行查找时,我都将我想要查找的属性的小写值与属性名称的小写值进行比较,如下所示:
propertyName = inputValue.toLowerCase();
for (var i in theObject) {
if (propertyName == i.toLowerCase()); // found a matching property name
}
有人知道更聪明的方法吗?
由于解释起来会花费太长时间,我不能只重新创建对象并将所有属性都设为小写。我确实意识到如果那是可能的我就能找到
theObject['inputValue'.toLowerCase()]
直接。但正如我所说,我不能。 theObject 中的属性名称是它们的原样,不能更改。问我为什么会偏离手头的问题。请相信我的话,theObject 被它所拥有的属性名称所束缚。
有人知道在这种情况下进行不区分大小写的属性名称查找的有效方法吗?