Javascript 按描述筛选JSON对象expressJS/parentareJS
上面的示例数组 我想说的是,只获取满足某个查询的对象Javascript 按描述筛选JSON对象expressJS/parentareJS,javascript,json,node.js,underscore.js,Javascript,Json,Node.js,Underscore.js,上面的示例数组 我想说的是,只获取满足某个查询的对象 [ { "id": 1, "description": "Take out the trash", "completed": false }, { "id": 2, "description": "Get food tonight", "completed": false }, { "id": 3, "description": "Hit the gym",
[
{
"id": 1,
"description": "Take out the trash",
"completed": false
},
{
"id": 2,
"description": "Get food tonight",
"completed": false
},
{
"id": 3,
"description": "Hit the gym",
"completed": true
}
]
这是怎么回事?如何将函数作为谓词输入下划线内。where 您可以在普通Javascript中使用正确的回调
功能已完成(项目){
返回项目。已完成;
}
函数byId(id){
返回函数(项目){
返回项.id==id;
};
}
var data=[{id:1,描述:“倒垃圾”,完成:false},{id:2,描述:“今晚吃东西”,完成:false},{id:3,描述:“去健身房”,完成:true}];
console.log(data.filter(byCompleted));
console.log(data.filter(byId(2))
下划线,其中
将key:value对象作为其参数,而不是函数。如果你知道你想要什么样的房产,那就很方便了
示例:
var completed=\其中(todos,{completed:true})代码>
var-gympleted=\u0.where(todos,{completed:true,description:“去健身房”})
where
返回包含指定属性的所有元素,findWhere
返回第一个匹配元素
如果您的筛选条件更复杂,并且需要指定一个谓词,那么您必须通过下划线或本机JS使用筛选
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var _ = require('underscore');
app.get('/todos/query/:des', function (req, res){
var descriptionToFilter = req.params.des;
console.log(descriptionToFilter);
var filteredDesArr = _.where(todos,function(todo){
todo.description.contains(descriptionToFilter.toLowerCase());
});
res.send(filteredDesArr);
});