【发布时间】:2020-02-03 13:24:37
【问题描述】:
我搜索了“hr001”,它返回所有具有“hr001”的索引。还行吧。 但我想使用搜索到的文本(“hr001”)对这个数组进行排序。
查看给定的代码。当我搜索“hr001”时,这里返回该数组的第一个和最后一个元素,数组顺序为:“code”:“SFHR001”,“code”:“HR001”。
由于我搜索“hr001”并且它完全匹配“code”:“HR001”,所以我想显示“code”:“HR001”作为第一个元素
var items = [
{
"id": 1,
"code": "SFHR001",
"property": "8''",
"description": "Half Round",
"productGroup": {
"id": 2,
"name": "Steel Files",
}
},
{
"id": 2,
"code": "MR004",
"property": "7''",
"description": "Polished",
"productGroup": {
"id": 3,
"name": "Pliers",
}
},
{
"id": 2,
"code": "HR001",
"property": "7''",
"description": "Fine Polished",
"productGroup": {
"id": 3,
"name": "Hand Reveter",
}
},
]
search = (item, searchedText) => {
return item["code"].toLowerCase().indexOf(searchedText.toLowerCase()) > -1
}
var ac = items.filter((item) => {
return search(item, 'hr001');
});
console.log(ac);
// var sortWithInputText = ac.sort(..........................)
【问题讨论】:
-
您想要完全匹配还是想要部分匹配?
-
@HereticMonkey 没有。我想使用搜索到的文本对数组进行排序
-
@Md.RobiUllah,你想要这样吗? codepen.io/manmur/pen/zYxgJLz
-
ac.sort((a,b)=> a.code.toLowerCase().indexOf('hr001') - b.code.toLowerCase().indexOf('hr001'))这样的事情就可以了
标签: javascript sorting