我正在尝试过滤一些 JSON 数据,但我希望查找基于下拉列表的选择。但是,当我尝试执行此操作时,我无法获得正确的语法。目前,以下内容在我的代码中有效,非常棒:
var as = $(json).filter(function (i, n) {
return (n.FIELD1 === "Yes"
});
但是,我想做的是用下拉列表中的 var 替换 FIELD1 值。像下面这样的东西不起作用:
var dropdownResult = "FIELD1";
var as = $(json).filter(function(i, n) {
return (n.dropdownResult === "Yes"
});
我试图让 var 成为 n 之后的字段名称。但它不起作用。
感谢您的宝贵时间。很抱歉,如果这个问题之前已经被回答过很多次并且对您来说是显而易见的。
最佳答案
要使用变量值作为对象的键,您应该使用括号表示法,如下所示:
var dropdownResult = "FIELD1";
var as = $(json).filter(function(i, n) {
return n[dropdownResult] === "Yes";
});
我删除了您留在代码中的无关 (
- 我认为这只是一个拼写错误,因为它会产生语法错误并导致您的代码完全无法工作。
另请注意,在字符串上使用 bool 值是更好的做法 'Yes'
/'No'
关于javascript - 使用 var(非条件)的 JSON 查找数据的查询语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920781/