我有一个对象数组
let array = [{name: "singpore"}, {name: "French Polynesia"}, {name: "poland"}, {name: "portugal"}]
字符串
我试图实现以下逻辑
array.filter((item) => {
return item.name.toLowerCase().includes(searchText);
});
型
我试图搜索的基础上“po”,当我搜索与po我能够得到所有的记录在同一顺序。
但是我需要按照下面的顺序得到结果来匹配第一个字符
电流输出:
[{name: "singpore"}, {name: "French Polynesia"}, {name: "poland"}, {name: "portugal"}]
型
预期产出:
[{name: "poland"}, {name: "portugal"}, {name: "singpore"}, {name: "French Polynesia"}]
型
4条答案
按热度按时间jgovgodb1#
您可以在过滤后使用
sort()
来实现这一点字符串
yrwegjxp2#
您可以使用
indexOf
然后使用索引对值进行排序!字符串
7xllpg7q3#
你也可以试试下面的方法
字符串
35g0bw714#
似乎你的目标是使用一个函数
repr
来组织你的项目,该函数通过项目名称中术语“po”的首字母索引来表示每个项目。TrueSet
是专门为此目的而定制的(请参阅@ut8pia/classifier库)字符串
您所需要做的就是将数据添加到
TrueSet
。然而,我想进一步建议,使用Regular Expression
作为query
可以显著增强所提出的解决方案,使其更简单,功能更强大。型
您可以通过以下方式测试建议的解决方案:
型