前端如何模糊匹配并排序

有如下数据格式:

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

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

阅读 3k
1 个回答
[
  {
    name: '匹配xxx'
  },
  {
    name: 'a匹配xxx'
  }
].map(i => [i.name.indexOf('匹配'), i])
.filter(([i]) => i >= 0)
.sort(([a], [b]) =>  a - b)
.map(([,i]) => i);
推荐问题