dongliang2005 2018-09-11 02:03
浏览 52
已采纳

如何使用javascript中的特定键和值循环json对象?

I am looping through a json object with the structure below:

var my_products = {
    "products": [
        {
            "title": "Product 1",
            "id": 001,
            "stock_quantity": 0,
            "in_stock": false
        },
        {
            "title": "Product 2",
            "id": 002,
            "stock_quantity": 0,
            "in_stock": false
        },
        {
            "title": "Product 3",
            "id": 003,
            "stock_quantity": 1,
            "in_stock": true
        },
        {
            "title": "Product 4",
            "id": 004,
            "stock_quantity": 1,
            "in_stock": true
        }
    ]
};

I can loop through the object with the code below:

for(var i=0; i<my_products.products.length; i++) {
    var product = my_products.products[i];
    console.log(product);
    console.log('in_stock:',product.in_stock);
}

Do you know how can I loop through each record where Products that have a "stock_quantity": 1 and "in_stock": true properties?

In the example above there are 2 product records that have a "stock_quantity": 1 property(not zero quantity)

  • 写回答

2条回答 默认 最新

  • douhao5280 2018-09-11 02:35
    关注

    Simply you can iterate and filter data with if condition.

    var my_products = {
        "products": [
            {
                "title": "Product 1",
                "id": 001,
                "stock_quantity": 0,
                "in_stock": false
            },
            {
                "title": "Product 2",
                "id": 002,
                "stock_quantity": 0,
                "in_stock": false
            },
            {
                "title": "Product 3",
                "id": 003,
                "stock_quantity": 1,
                "in_stock": true
            },
            {
                "title": "Product 4",
                "id": 004,
                "stock_quantity": 1,
                "in_stock": true
            }
        ]
    };
    var filterData = [];
    $.each(my_products.products, function(){
        if (this.in_stock && this.stock_quantity === 1) {
            filterData.push(this);
        }
    });
    console.log(filterData);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误