从json键自动创建var,为全局使用值对

时间:2013-04-01 10:06:49

标签: jquery arrays json

  

更新:我记得我可以将它们存储为   jQuery的(文件)。数据(键,值);供以后使用,但这是好事   想法?在性能方面,这会是一个昂贵的选择吗?

我正在尝试从json数组键自动创建var,值对以供以后使用。

所以我基本上创建了两组设置,1-默认设置(defSets)2-用户设置(usrSets)。想法是使用用户设置(如果存在),否则回退到默认设置。 我不想一个接一个地写所有变量,所以有没有办法从这些数组创建全局变量以供以后在各个地方使用?

是这样的: var [key_name] = [key_value_read_from_User_Setting_or_Default_Set];

以下是我的实际代码;问题是,它似乎在每个循环中创建变量,但我认为我无法全局访问它们。

jQuery(document).ready(function(e) {
// read default settings array from cookie if exist, otherwise create initial default settings and save
  if (jQuery.cookie("defSets") != null) {
    var defSets = jQuery.parseJSON(jQuery.cookie("defSets"))
  } else {
    var defSets = { 'ord': 'true', 'itemc': 4, 'ratio': 'sq', 'sortby': 'def'};
    jQuery.cookie("defSets", JSON.stringify(defSets)); 
  };
  // read user settings array from cookie if exist, otherwise create initial empty user settings and save
  if (jQuery.cookie("usrSets") != null) {
    var usrSets = jQuery.parseJSON(jQuery.cookie("usrSets"))
  } else { 
    var usrSets = {};
    jQuery.cookie("usrSets", JSON.stringify(usrSets));
  }

  jQuery.each(defSets, function(key, value){
    // check every default setting
    if (usrSets[key] != undefined) {
  // if a user setting exists for respective default setting use that
      var key = usrSets[key];
      // uval = usrSets[key];
      // dval = defSets[key];
      // console.log("User have a setting for -" + key + "- So the value (" + uval + ") will be used instead of default: " + dval);
} else {
      var key = defSets[key];
      // console.log ("No user setting for -" + key + "- will use default val of :" + dval);
};
});

在这些之后,理想情况下,我可以在这些行以下的任何地方使用那些var, 假设已经从上面创建了变比率;我可以jQuery(".selector").height(jQuery(this).width * ratio);

1 个答案:

答案 0 :(得分:0)

如果您需要全局存储一些信息,我会使用namespaces。我认为这更好,但毕竟这是一个偏好问题,我想