我有这段代码:
var options = [{
"n": function(a){return a;},
"l1": function(a){return a.duration<1;},
"1to3": function(a){return a.duration>=1 && a.duration<3;},
"3to6": function(a){return a.duration>=3 && a.duration<=6;},
"6to10": function(a){return a.duration>=6 && a.duration<=10;},
"m10": function(a){return a.duration>10;}
}];
var e = document.getElementById('duration');
var selopt = e.options[e.selectedIndex].value;
var arr = arr.filter(options[ selopt ]); //This line returns the error
我在指定的行中收到此错误。数组arr
是具有持续时间值的对象数组。我知道selopt会返回正确的值,所以我不知道出了什么问题。
答案 0 :(得分:2)
我知道selopt会返回正确的值
是的,但options[ selopt ]
没有。
您的options
变量包含一个包含一个对象的数组,而不是对象本身。使用
…options[0][selopt]…
或
var options = { // no [
…
};