前端做查询,动态生成查询条件
eval函数是将被字符串包裹的判断条件转换成可以使用的判断条件
const a = {
name: '213',
age: '3423'
}
const list = [{
name: '213',
age: '3423',
sex: 'male'
},
{
name: '13',
age: '343',
sex: 'male'
},
{
name: '23',
age: '3423',
sex: 'female'
},
{
name: '213',
age: '3423',
sex: 'male'
},
]
const ifList = {
name: 'item.name === a.name',
age: 'item.age === a.age',
sex: 'item.sex === a.sex'
}
const searchList = []
for (data in a) {
searchList.push(`eval(${ifList[data]})`)
}
console.log(searchList)
let searchString = ' '
searchList.forEach((item, i) => {
searchString = item + '&&' + searchString
})
let bbbbb = searchString.split('&&').slice(0, -1).join(` && `)
console.log(bbbbb)
list.forEach((item) => {
if (eval(bbbbb)) {
console.log('0000')
} else {
console.log('1111')
}
})