比如下面的对象数组:
let arr = [
{ a: 'name', b: 123, c: 1111},
{ a: 'name2', b: 456, c: 1111},
{ a: 'name2', b: 789, c: 1111},
]
查询条件:(且查询条件可动态变化,可以是一个属性,也可以是多个或者全部属性)
let query = { a: 'name2', c: 1111 }
希望返回的值:
[
{ a: 'name2', b: 456, c: 1111},
{ a: 'name2', b: 789, c: 1111},
]
这个逻辑其实和数据库的条件查询挺像的
但用JS的话下面的代码应该如何写呢?
let result = arr.filter(i => {
// 过滤条件
})
###let query = { a: 'name2', c: 1111 }
let result = arr.filter(item => {
// 过滤条件
for(let key in query){
if(query.hasOwnProperty(key) && (item[key] !== query[key])){
return false
}
}
return true
})
###let result = arr.filter(item => {
for (let key in query) {
if (query[key] !== item[key]) return 0
}
return item
})