使用JSON对象中的值获取数据

3

我的JSON如下:

{
    "sales": [{
        "manager": "alberic",
        "surgeon": "Dr Barry Biggins",
        "amount": "300",
        "country": "USA",
        "percent-seller": "30",
        "antiquity": "June 2017",
        "date": "6"
    }, {
        "manager": "support",
        "surgeon": "Dr Barry Biggins",
        "amount": "300",
        "country": "UK",
        "percent-seller": "20",
        "antiquity": "June 2017",
        "date": "2"
    }, {
        ...
    }]
}

我想从sales中检索满足manager = "support"date = "2"的对象。我该如何在jQuery中实现?
谢谢!
3个回答

2

您可以简单地使用filter()方法,并在过滤方法函数中使用您的条件。如果您的条件成立,该函数将返回元素;否则它会忽略元素。

data=    {"sales": [{
          "manager": "alberic",
          "surgeon": "Dr Barry Biggins",
          "amount": "300",
          "country": "USA",
          "percent-seller": "30",
          "antiquity": "June 2017",
          "date": "6"
        }, {
          "manager": "support",
          "surgeon": "Dr Barry Biggins",
          "amount": "300",
          "country": "UK",
          "percent-seller": "20",
          "antiquity": "June 2017",
          "date": "2"
        },
       ]
      };


var matchedElements = data.sales.filter(function(element) {
   return (element.manager == 'support' && element.date == '2');
});
                   
console.log(matchedElements);
                    
//if you want to access  surgeon of first element of matchedElements
                    
console.log(matchedElements[0].surgeon);

          
//if you want to access  surgeon of all elements in matchedElements
for(i in matchedElements)           
{
console.log(matchedElements[i].surgeon);
}


谢谢,但是在使用它之后,我如何从matchedElements中访问surgeon? - user1937021
我已经修改了我的代码,从matchedElements中访问外科医生 :) - Haresh Vidja

1

var data = {
  "sales": [{
    "manager": "alberic",
    "surgeon": "Dr Barry Biggins",
    "amount": "300",
    "country": "USA",
    "percent-seller": "30",
    "antiquity": "June 2017",
    "date": "6"
  }, {
    "manager": "support",
    "surgeon": "Dr Barry Biggins",
    "amount": "300",
    "country": "UK",
    "percent-seller": "20",
    "antiquity": "June 2017",
    "date": "2"
  }]
};


$.each(data.sales, function(i, v) {

  if (v.manager == 'support' && v.date == '2') {
    console.log(v.manager)
    console.log(v.surgeon)
    console.log(v.amount)
  }

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

使用 .each() 进行迭代。

1

你要筛选sales数组。

如果你想支持旧版浏览器,请确保从上面的链接中添加polyfill。

var matchingSales = jsonData.sales.filter(function(sale) {
   return sale.manager == 'support' && sale.date == '2';
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接