伙计们,我有一个名为searchQuery的数据属性以及一个计算属性,该属性可以搜索我的商品名称和templateArray中的keywordArray并返回模板。效果很好。但是我试图使它更强大。 继承人我的计算属性
searchResults: function(){
return this.filteredTemplateArray.filter((template)=>{
return template.itemName.toLowerCase().includes(this.searchQuery.toLowerCase())
|| template.keywordArray.toString().toLowerCase().includes(this.searchQuery.toLowerCase());
})
}
每个模板都作为一个对象返回,其中包含一个包含名为keywordArray的数组。该对象看起来像这样
0:Object
categoryArray:Array[0]
dateAdded:"2016-05-27 10:16:56"
id:"15"
itemId:"73076"
itemName:"Colorful Trans"
keywordArray:Array[2]
0:"Water"
1:"Sparkles"
projectPath:"M:/Projects/Generics/CreativeEngine/2016/ColorfulImageTrans-Scott/ColorfulImageTrans.aep"
renderTime:"30"
stillImageLocation:"12.90"
tested:"1"
thumbName:"COLORFULIMAGETRANS"
基本上我想做的是,如果它不返回template.keywordArray.toString().toLowerCase().includes(this.searchQuery.toLowerCase())
的结果,我想搜索每个由空格分隔的单词,就好像它是自己的searchQuery一样。例如,现在如果我输入sparkles,我会得到结果。如果输入水,我得到结果,但是如果输入水,则不会返回任何结果。如果searchQuery有空格,请在keywordArray中搜索水和火花。
答案 0 :(得分:0)
string = input("Enter a string")
acc = ""
for idx,char in enumerate(string):
if(ord(char)>=65 and ord(char)<=90):
acc+=string[idx:]
break
elif(ord(char)>=97 and ord(char)<=122):
acc+=char.upper()
acc+=string[idx+1:]
break
acc+=char
print(acc)
返回以逗号someArray.toString
分隔的数组项,因此请尝试用空格,
替换该逗号,如下所示:
如果搜索到的单词不正确,则可以使用以下方法:
template.keywordArray.toString().replace(","," ").toLowerCase().includes(this.searchQuery.toLowerCase());
示例代码:
this.searchQuery.toLowerCase().split(' ').every(val => {
return template.keywordArray.toString().toLowerCase().split(',').filter(item => {
return item.includes(val)
}).length !== 0;
})
/***OR directly search in keywordArray***/
this.searchQuery.toLowerCase().split(' ').every(val => {
return template.keywordArray.filter(item => {
return item.includes(val)
}).length !== 0;
})