不区分大小写访问JavaScript属性? [英] Access JavaScript property case-insensitively?

查看:605
本文介绍了不区分大小写访问JavaScript属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个对象:

var obj = {
  foo:"bar",
  fizz:"buzz"
};

我需要动态访问该对象的属性,如下所示:

I need to access a property of that object dynamically like so:

var objSetter = function(prop,val){
  obj[prop] = val;
}

那里没有问题,除了 prop 需要不区分大小写,例如 Foo 而不是 foo

No problems there, except for that prop needs to be case insensitive in case the property name is passed into the function as, say, Foo instead of foo.

那么如何在不考虑案例的情况下按名称指向对象的属性?我想尽可能避免迭代整个对象。

So how can I point to an object's property by name without regard to case? I would like to avoid iterating the entire object if possible.

推荐答案

将obj的所有属性与prop进行比较。

Compare all the properties of obj with prop.

var objSetter = function(prop,val){
  prop = (prop + "").toLowerCase();
  for(var p in obj){
     if(obj.hasOwnProperty(p) && prop == (p+ "").toLowerCase()){
           obj[p] = val;
           break;
      }
   }
}

这篇关于不区分大小写访问JavaScript属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆