问答

JS对象数组如何实现多属性查询?

作者:admin 2021-08-03 我要评论

比如下面的对象数组: let arr = [ { a: 'name', b: 123, c: 1111}, { a: 'name2', b: 456, c: 1111}, { a: 'name2', b: 789, c: 1111}, ] 查询条件:(且查询条...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

比如下面的对象数组:

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
})

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • JS对象数组如何实现多属性查询?

    JS对象数组如何实现多属性查询?

  • Javascript 位运算与Java位运算结果不

    Javascript 位运算与Java位运算结果不

  • 怎么拿取一段以html形式的字符串里面属

    怎么拿取一段以html形式的字符串里面属

  • 有什么好用的vue树形控件吗?

    有什么好用的vue树形控件吗?

腾讯云代理商
海外云服务器