通过 nodejs 过滤对象数组
Filter object array via nodejs
我有一个对象数组,如下所示,
{
"data": [
{
"name": "HTML",
"description": "Hyper Text Markup Language"
},
{
"name": "CSS",
"description": "Cascading Style Sheet"
},
{
"name": "JS",
"description": "Javascript"
}
]
}
我从这个端点 /get/technologies 得到上面的对象数组作为响应,假设如果这个端点会有一个查询字符串,就像这样 /get/technologies?q=CSS 我如何过滤响应以呈现以下内容,
{
"data": [
{
"name": "CSS",
"description": "Cascading Style Sheet"
}
]
}
我有一个 node/express 应用程序所以在控制器中如果我这样做 "req.query.q" 那么我可以获取查询参数,使用该查询参数我如何过滤原始对象数组..我来了跨越一些 npm 包,但不确定哪个适合我的需要,
https://www.npmjs.com/package/filter-array
https://www.npmjs.com/package/object-filter
https://www.npmjs.com/package/array-filter
https://www.npmjs.com/package/array-query
如果我可以获取查询参数并找到匹配的文本,那也很好。例如,如果查询参数只是 "SS",那么结果应该同时呈现 CSS 和JS 因为文本 "S" 存在于它们中。
试试这个:
var d = [
{
"name": "HTML",
"description": "Hyper Text Markup Language"
},
{
"name": "CSS",
"description": "Cascading Style Sheet"
},
{
"name": "JS",
"description": "Javascript"
}
];
var a = d.filter(function(el) {
return el.name === 'CSS';
});
你可以直接使用 filter
:
var data = [
// the array to be filtered
];
var filteredArray = data.filter(item => (item.name === req.query.q));
我有一个对象数组,如下所示,
{
"data": [
{
"name": "HTML",
"description": "Hyper Text Markup Language"
},
{
"name": "CSS",
"description": "Cascading Style Sheet"
},
{
"name": "JS",
"description": "Javascript"
}
]
}
我从这个端点 /get/technologies 得到上面的对象数组作为响应,假设如果这个端点会有一个查询字符串,就像这样 /get/technologies?q=CSS 我如何过滤响应以呈现以下内容,
{
"data": [
{
"name": "CSS",
"description": "Cascading Style Sheet"
}
]
}
我有一个 node/express 应用程序所以在控制器中如果我这样做 "req.query.q" 那么我可以获取查询参数,使用该查询参数我如何过滤原始对象数组..我来了跨越一些 npm 包,但不确定哪个适合我的需要,
https://www.npmjs.com/package/filter-array
https://www.npmjs.com/package/object-filter
https://www.npmjs.com/package/array-filter
https://www.npmjs.com/package/array-query
如果我可以获取查询参数并找到匹配的文本,那也很好。例如,如果查询参数只是 "SS",那么结果应该同时呈现 CSS 和JS 因为文本 "S" 存在于它们中。
试试这个:
var d = [
{
"name": "HTML",
"description": "Hyper Text Markup Language"
},
{
"name": "CSS",
"description": "Cascading Style Sheet"
},
{
"name": "JS",
"description": "Javascript"
}
];
var a = d.filter(function(el) {
return el.name === 'CSS';
});
你可以直接使用 filter
:
var data = [
// the array to be filtered
];
var filteredArray = data.filter(item => (item.name === req.query.q));