最近做了个有意思的需求, 前端实现简单的产品搜索并排序
class SearchList {
constructor() {
this.showList = []
this.list = []
}
search(key, arr) {
let arrTrueList = [],
arrFalseList = [];
arr.forEach(item => {
if (this.loopObj(key, item)) {
item.showStatus = true
arrTrueList.push(item)
} else {
item.showStatus = false
arrFalseList.push(item)
}
})
this.showList = arrTrueList
this.list = arrTrueList.concat(arrFalseList)
return this
}
loopObj(searkey, obj) {
let bool = false
let loop = (searkey, obj) => {
for (let key in obj) {
if (String(obj[key]).trim().indexOf(searkey) !== -1) {
bool = true
}
if (typeof obj[key] === 'object' && obj[key] !== null) {
loop(searkey, obj[key])
}
}
}
loop(searkey, obj)
return bool;
}
getShowList() {
return this.showList
}
getList() {
return this.list
}
}
export default new SearchList()