前端如何模糊匹配并排序

有如下数据格式:

[{
name:'xxx匹配xxx',
name:'xx匹配xxx',
name:'x匹配xxx',
name:'匹配xxx',
}]

如何保证在搜索“匹配”时,能够按照字符“匹配”最靠前排在最前的方式排序。理想搜索结果如下:
匹配xxx'
x匹配xxx'
xx匹配xxx'
xxx匹配xxx'

阅读 2.6k
1 个回答
[
  {
    name: '匹配xxx'
  },
  {
    name: 'a匹配xxx'
  }
].map(i => [i.name.indexOf('匹配'), i])
.filter(([i]) => i >= 0)
.sort(([a], [b]) =>  a - b)
.map(([,i]) => i);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏