Javascript 在节点中的对象数组中搜索
我有一个对象数组,每个对象包含以下数据: 我有一个节点路由,它拉入一个标记,然后在其中搜索。现在,我键入的任何内容都返回-1。如果标记与查询匹配,如何获得修改的数组 同样,目前,我键入的任何内容,包括有效标记,都返回-1 此时,我将使用修改后的数组,并将其注入模板中,如您所见Javascript 在节点中的对象数组中搜索,javascript,arrays,node.js,object,express,Javascript,Arrays,Node.js,Object,Express,我有一个对象数组,每个对象包含以下数据: 我有一个节点路由,它拉入一个标记,然后在其中搜索。现在,我键入的任何内容都返回-1。如果标记与查询匹配,如何获得修改的数组 同样,目前,我键入的任何内容,包括有效标记,都返回-1 此时,我将使用修改后的数组,并将其注入模板中,如您所见 router.get('/search/:tag', function(req, res) { const tag = req.params.tag; shopify.article.list(86289414)
router.get('/search/:tag', function(req, res) {
const tag = req.params.tag;
shopify.article.list(86289414)
.then(function (response) {
response.reverse();
index = response.indexOf(response.filter(function(item) {
return item.tags == tag
}) )
console.log(index);
var data = {
articles: index.map((article) => {
return {
author: article.author,
id: article.id,
html: article.body_html,
tags: article.tags,
date: moment(article.published_at).format("Do MMM YYYY"),
slug: article.handle,
} // return
}) // map
} // data
res.json(data);
}) // then
.catch(err => console.log(err) )
});
有什么更好的方法
谢谢大家!
另外,我翻遍了洛达斯,什么也没找到。我对lodash的方法持开放态度。我用以下代码解决了它
response = response.filter(function(item) {
return item.tags.indexOf(tag) > -1;
});
请不要发布真正是对象文字的图片。将其作为文本发布。
Array.filter()
返回一个数组indexOf(returnedArray)
将始终为-1,因为返回的数组只是原始数组的子集。