有人可以帮我避免使用 eval() 吗?

Could someone help me avoid using eval()?

我有这个代码:

  var Monday = scheduledb({
      "monday": true
  }).count();
  var Tuesday = scheduledb({
      "tuesday": true
  }).count();
  var Wednesday = scheduledb({
      "wednesday": true
  }).count();
  var Thursday = scheduledb({
      "thursday": true
  }).count();
  var Friday = scheduledb({
      "friday": true
  }).count();
  $$(".day-selector").each(function (index) {
      $$(this).text(eval($$(this).attr("id")) + " classes");
  });

我想做的是使用我从元素的 id 属性中获得的值并为它进行数据库查找。但是 .attr() returns 一个字符串,我无法从中获取变量值。如果不使用 eval() 怎么办?

使用更好的模型,这样您就不需要使用 eval

var days = {
 Monday : scheduledb({"monday": true}).count(),
 Tuesday : scheduledb({"tuesday": true}).count(), 
 ...
};

比括号表示法:

$$( this ).text(days[$$( this ).attr("id")])

或者干脆放弃查找

var obj = {};
obj[$$( this ).attr("id").toLowerCase()] = true;
$$( this ).text( scheduledb(obj).count() )