【发布时间】:2018-06-13 09:39:04
【问题描述】:
我想为搜索实现一个标签过滤器,并获得一个包含许多条目的条目数组(变量:条目):
"entries":[
{
"id":1,
"details":"text",
"tags":[
{
"id":9,
"label":"Label9"
},
{
"id":6,
"label":"Label6"
},
],
"date":"Mar 8, 2018 2:45:30 PM"
}]
我想用另一个标签数组(变量:标签)过滤这个数组,如下所示:
"tags":[
{
"id":6,
"label":"Label6"
}
最后,我需要一个包含标签数组中所有标签的条目数组。 ]
我写了这段代码,但出了点问题。它比较每个标签的id。
const entries = [{
"id": 1,
"details": "text",
"tags": [{
"id": 9,
"label": "Label9"
},
{
"id": 6,
"label": "Label6"
},
],
"date": "Mar 8, 2018 2:45:30 PM"
}]
const tags = [{
"id": 6,
"label": "Label6"
}]
function containSearchTag(tags) {
return entries.filter(function(el) {
for (let i = 0; i < el.tags.length; i++) {
for (let j = 0; j < tags.length; j++) {
return el.tags[i].id === tags[j].id;
}
}
});
}
console.log(containSearchTag(tags));
【问题讨论】:
-
因为过滤器在外部对象上,所以你并没有真正过滤任何东西
-
我给你写了一个sn-p - 请检查并在需要的地方修改
标签: javascript arrays filter