fnFilter有多个值?

时间:2018-02-28 13:58:00

标签: javascript datatables fnfilter

我有一个名为“Etiquetas”的列表,我有多个用逗号分隔的标签(例如:“Tag,Tag01,Tag02”) 我有一个标签搜索,我把所有标签,当你点击它,这将被添加到实际搜索(使用fnFilter),值传递如下:'“Tag”,“Tag01”',但如果我过滤“标记”,过滤器显示包含该单词的所有行,而不是具有确切单词的行。 EX:显示带有“Tag”,“tag”和“Tag01”等的行。 我需要帮助才能生成精确过滤器,并且需要多个值。 我添加了一张图片来更好地解释这一点(我很难解释对不起) Image with the actual problem

1 个答案:

答案 0 :(得分:0)

您可以利用查找和过滤功能。虽然这不会为您提供排名列表,例如匹配大多数标签的项目,但它仅显示至少具有匹配标记的项目。

这假设标签是作为一个数组给出的,而礼仪是一串逗号分隔的标签(它也可以是一个数组,但据我所知,你提到用逗号分隔,所以我认为它是一个字符串)。

var items = [
  {title: "1", etiquettes: "tag01"},
  {title: "2", etiquettes: "tag,test"}
];

var tags = ["tag"];

var results = items.filter((item) => {
  // splits the tags in the etiquettes, and tries to find at least a matching one. if so, find will return true to the filter function for the current item
  return item.etiquettes.split(",").find((itemTag) => {
    return tags.indexOf(itemTag) >= 0;
  });
});

console.log(results);