1. ホーム
  2. javascript

[解決済み] Access JavaScript property case-insensitively?

2022-12-27 05:52:21

質問

あるオブジェクトがあるとします。

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

そのオブジェクトのプロパティに動的にアクセスする必要があるのですが、こんな感じです。

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

を除けば、特に問題はありません。 prop は大文字と小文字を区別しない必要があります。 Foo の代わりに foo .

では、大文字小文字を区別せずにオブジェクトのプロパティを名前で指し示すにはどうしたらよいでしょうか。 できればオブジェクト全体のイテレーションを避けたいのですが。

どのように解決するのですか?

objの全てのプロパティを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;
      }
   }
}