我正在寻找一个过滤的json文件,具体取决于上一页中使用下划线js应用程序中下划线的用户输入。到目前为止,这是我所做的:
var fs = require('fs');
var contents = fs.readFileSync("public/files/testFile.json");
var obj = JSON.parse(contents);
var gender = req.query.gender
var filtered = _.where(obj.elements, {gender: true}); // elements is the array I want to filter
我要过滤的json是以下内容:
{
"elements": [
{
"id": 0,
"man": true,
"url": "https://pbs.twimg.com/media/CfRi_u8aaW8AfQvI7v.jpg"
},
{
"id": 1,
"Woman": true,
"url": "https://pbs.twimg.com/media/CfZ-8ikafWsAAngQGP.jpg"
}
]
}
请注意,当我执行相同的“ man”更改变量性别时,它可以正常工作。看起来像使用变量进行搜索那样是行不通的。我有两个问题:
您为什么不尝试以下操作:
var _ = require('underscore');
var elem = {
"elements": [
{
"id" : 0,
"man": true,
"url": "https://pbs.twimg.com/media/CfRi_u8W8AQvI7v.jpg"
},
{
"id" : 1,
"woman": true,
"url" : "https://pbs.twimg.com/media/CfZ-8ikWsAAnQGP.jpg"
}
]
};
var gender = 'man';
var filtered = _.filter(elem.elements, function(element){
return _.has(element, gender) && element[gender] === true;
});
console.log(filtered);
我已经在这里硬性编码了性别的价值。您可以从应用程序中的查询中读取该内容。我认为该片段几乎可以自我解释。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句