提问人:Frank 提问时间:7/6/2022 最后编辑:Frank 更新时间:7/6/2022 访问量:73
基于标签的自动完成 JavaScript 数组
Autocomplete based on tags JavaScript array
问:
我正在尝试创建一个普通的 JavaScript 函数,该函数将用户输入与标签数组进行比较并返回最佳匹配项。我创建了一个 JSON 索引,如下所示:
[
{
"data-governance": {
"tags": ["data", "governance"],
"href": "data-governance.html"
}
},
{
"data-quality": {
"tags": ["data", "quality"],
"href": "data-quality.html"
}
}
]
我希望该函数的行为如下:如果用户输入,它应该同时返回数据治理和数据质量 href 属性。但是,如果用户输入,则应仅返回 data-governance href 属性。"data"
"data gov"
我发现了一些例子,其中自动完成是在正则表达式中使用字符串匹配完成的,但没有一个比较字符串数组(即标签)。
希望有人能为我指出正确的方向。
答:
0赞
Abito Prakash
7/6/2022
#1
你可以做这样的事情,
const data = [
{
'data-governance': {
tags: ['data', 'governance'],
href: 'data-governance.html',
},
},
{
'data-quality': {
tags: ['data', 'quality'],
href: 'data-quality.html',
},
},
];
const findMatches = (items, tag) => {
return items
.filter((item) => {
const { tags } = Object.values(item)[0];
return tags.includes(tag);
})
.map((item) => Object.keys(item)[0]);
};
console.log(findMatches(data, "data"));
评论