问题描述
现在,我的模型具有包含单词数组的字段,例如将该行设置为['tag1','tag2','菠萝']
现在说某人搜索“ pine”或“ tag”。我想返回该数组中包含或等于该搜索词的字符串的所有实例/行吗?
因此,应返回该行,因为它与“ pineapple”中的“ pine”匹配。因此,我想做[内容包含]但也要获得不精确的匹配。如果有帮助,我会在生产中使用pgSQL。
解决方法
我不确定这是否是您想要的。我看一下数组中的任何字符串是否包含完整或部分的测试字符串,然后返回整个数组,否则返回空数组。
为此,我看一下array.some,如果至少有1个array-element在任何位置都包含测试字符串。如果是这样,我将返回完整的数组,否则返回一个空数组。
let array = ['tag1','tag2','pineapple'];
function strContained(str,array) {
return (array.some(elem => elem.indexOf(str)!=-1)) ? array : [];
};
console.log(strContained('pine',array));
console.log(strContained('pines',array));
console.log(strContained('tag1',array));