Notepad++Good Luck To You!

js json多条件筛选?

//商品列表

var data = [

    {

    "id": 0,

    "goodsImg": "/images/ss1.jpg",

    "title": "手机",

    "subtitle": "手机,上海,粉色",

    "price": "888.00",

    "sale": "999.00",

    "place": "北京",

    "color": "红色",

    "pid": "华为",

    "sid": "手机"

    },

    {

    "id": 1,

    "goodsImg": "/images/ss1.jpg",

    "title": "手机",

    "subtitle": "手机,上海,粉色",

    "price": "888.00",

    "sale": "999.00",

    "place": "北京",

    "color": "黑色",

    "pid": "华为",

    "sid": "手机"

    },

    {

    "id": 2,

    "goodsImg": "/images/ss1.jpg",

    "title": "手机",

    "subtitle": "手机,上海,粉色",

    "price": "888.00",

    "sale": "999.00",

    "place": "上海",

    "color": "红色",

    "pid": "苹果",

    "sid": "手机"

    },

    {

    "id": 3,

    "goodsImg": "/images/ss1.jpg",

    "title": "手机",

    "subtitle": "手机,上海,粉色",

    "price": "888.00",

    "sale": "999.00",

    "place": "北京",

    "color": "黑色",

    "pid": "苹果",

    "sid": "手机"

    }

]

//筛选条件,需要筛选的字段和商品的字段得保持一致

var filter = {

    pid: ['华为'],

    sid: ['手机'],

    color: ['黑色', '红色'],

    place: ['北京']

}


function filterData(data, filter){

    return data.filter(item => {

        var isIn = true

        for(var key in filter) {

            if(filter[key].indexOf(item[key]) < 0){

                isIn = false

                break

            }

        }

        return isIn

    })

}


var newData = filterData(data, filter)

console.log(newData)


«    2023年7月    »
12
3456789
10111213141516
17181920212223
24252627282930
31
TOP 搜索
TOP 控制面板
您好,欢迎到访网站!
  查看权限
TOP 最新留言
    TOP 作者列表
    TOP 站点信息
    • 文章总数:163
    • 页面总数:0
    • 分类总数:6
    • 标签总数:20
    • 评论总数:0
    • 浏览总数:312004
    召唤伊斯特瓦尔